如果原来的JS有很多功能,那么启动它们的方法是多少?

时间:2017-04-17 10:03:00

标签: dart dart-js-interop

经过几轮研究,我发现没有明确的答案如下:

我有一个名为'AAA.js'的js文件,这里有简单的代码:

    var AAA = {
       listenForMenuLayer: function () {
           console.log("menu initiated");
           $('.nav-menu').on('click', function() { console.log("menu clicked")});
       }

         init: function(){
            this.listenForMenuLayer();
         }
    };

在飞镖中,我写的如下(使用'dart:js'):

js.context['AAA'].callMethod('init');

然后,当我运行它时,一切看起来都很好,“菜单启动”显示正确,这意味着'listenForMenuLayer'已启动,但是当点击'.nav-menu'时, 没有任何事情发生。 (我多次检查,没有拼写错误或者其他)

我的问题是:Dart可以接受这种外部JS事件的启动吗?或者我们应该重新编写这些JS活动,请提出建议,非常感谢。

更新 我发现如果我们像上面那样编写js代码,那么jquery将无法正常启动,这意味着所有以'$'开头的功能都将无法正常运行。

1 个答案:

答案 0 :(得分:1)

伙计们,我将其更新为使用'包:js / js.dart';

@JS('AAA.init')
external void aInit();

然后在某些地方,只需简单地调用包括:

aInit();