在JavaScript飞镖事件(Dart events in JavaScript)

2019-10-21 23:21发布

我有这样的代码在这里 ,我正在转换为省道。 问题是与回调。

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-互操作啄是那种凌乱。 我无法用我自己来解决它,需要每一步之后再问。 我希望,当我将覆盖所有互操作的使用情况,我将能够,只是用飞镖和忘记JS。

Answer 1:

我想这应该做的伎俩:

var target = new js.JsObject.fromBrowserObject(e)['target']
  .callMethod('getContainer', []);


文章来源: Dart events in JavaScript