У меня есть этот код here, который я конвертирую в Дарт. Проблема связана с обратными вызовами.Dart события в JavaScript
function stop(e) {
var node = e.target.getContainer();
node[SMap.LAYER_MARKER].style.cursor = "";
var coords = e.target.getCoords();
alert("Cílová pozice: " + coords.toWGS84(2).reverse().join(" "));
}
var signals = mapa.getSignals();
signals.addListener(window, "marker-drag-stop", stop);
Мой код в Дарта
var signals = mapa.callMethod('getSignals', []);
signals.callMethod('addListener', [context, 'marker-drag-stop', stop]);
}
stop(MouseEvent event) {
var target = event.target.callMethod('getContainer',[]);// problem
context.callMethod('alert', ['texttext']);
}
Остановка обратного вызова правильно называется, но я не знаю, что делать с var node = e.target.getContainer();
линии. E.target возвращает что-то, но что дальше.
Боковой вопрос: есть mapa.callMethod('addLayer', [layer]).callMethod('enable', []);
синтаксис, только один возможный способ вызова методов javascript. Я нахожу это немного громоздким: -/
Весь этот js-interop thingy довольно грязный. Я не могу решить это самостоятельно, и вам нужно снова спросить после каждого шага. Надеюсь, когда я расскажу о всех случаях использования interop, я смогу, просто использовать Дарт и забыть о JS.
Это, конечно, работал. У вас есть небольшая проблема, можете ли вы сказать мне разницу между «новым JsObject.fromBrowserObject (node [layerMarker]) ['style'] ['cursor'] = '';' который работает и 'var cursor = new JsObject.fromBrowserObject (узел [layerMarker]) [ 'стиль'] [ 'курсор']; cursor = ''; 'возможно, я не могу хранить свойство в переменной. Это также работает как «var cursor = new JsObject.fromBrowserObject (node [layerMarker]); cursor ['style'] ['cursor'] = ''; ' – Zveratko
Я не вижу разницы, кроме того, что во второй версии создается переменная, которая содержит ссылку на' ['cursor'] '. Если вам не нужна эта ссылка позже в вашем коде, вы можете просто пойти с первой версией. Если ответ решает вашу проблему, пожалуйста, примите его, используя галочку под кнопками «вверх/вниз», чтобы понять, на ваш вопрос ответили. –
Если я позже присвою ссылку ['cursor'], она не работает. Итак, вопрос в том, почему, тем не менее, я знаю, как мне обошлось. – Zveratko