Dart 与第三方库集成

Dart and third party library integration

我有一些地图库的简单使用示例

<!doctype html>
<html>
<head>
    <script src="http://api4.mapy.cz/loader.js"></script>
    <script>Loader.load()</script>
</head>

<body>
    <div id="mapa" style="width:600px; height:400px;"></div>
    <script type="text/javascript">
        var stred = SMap.Coords.fromWGS84(14.41, 50.08);
        var mapa = new SMap(JAK.gel("mapa"), stred, 10);
        mapa.addDefaultLayer(SMap.DEF_BASE).enable();
        mapa.addDefaultControls();                
    </script>
</body>
</html>

我应该如何将其集成到 Dart 中。我觉得自己在 javascript 方面很弱,所以我正在寻找任何选项来摆脱 javascript 的使用,但在与第 3 部分库集成时我总是失败。我尝试使用 GWT,最后一个版本使用 backbone,但它很乱。所以我现在给 Dart 一个机会,但到目前为止是没有希望的。

我试过这样的东西

 var stred = context['SMap']['Coords'].callMethod('fromWGS84', [14.41, 50.08]);
 var element = context['JAK'].callMethod('gel', 'mapa');
 var mapa = new JsObject(context['SMap'],[[element], [stred], 10]);

第一行似乎成功了,但在它停止后,未定义和通常的 javascript 疯狂,调试 dart.js 就像 javascript 地狱平方。

这似乎产生与您的 JS 代码相同的结果:

  var stred = context['SMap']['Coords'].callMethod('fromWGS84', [14.41, 50.08]);
  var element = context['JAK'].callMethod('gel', ['mapa']);
  var mapa = new JsObject(context['SMap'],[element, stred, 10]);
  mapa.callMethod('addDefaultLayer', [context['SMap']['DEF_BASE']])
      .callMethod('enable', []);
  mapa.callMethod('addDefaultControls', []);