1

ここにこのコードがあり、Dart に変換しています。問題はコールバックにあります。

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);

Dart での私のコード

  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']); 
}

stop コールバックはちゃんと呼ばれているのですが、line はどうすればいいのかわかりませんvar node = e.target.getContainer();。e.target は何かを返しますが、次に何を返しますか。

副次的な質問:mapa.callMethod('addLayer', [layer]).callMethod('enable', []);構文です。javascript メソッドを呼び出す唯一の可能な方法です。少し面倒だと思います:-/

このjs-interop全体はちょっと面倒です。自分で解決できず、各手順の後にもう一度質問する必要があります。すべての相互運用のユース ケースをカバーするときに、Dart を使用して JS を忘れることができるようになることを願っています。

4

1 に答える 1

2

これでうまくいくと思います:

var target = new js.JsObject.fromBrowserObject(e)['target']
  .callMethod('getContainer', []);
于 2015-02-18T17:25:49.300 に答える