收听Dart的javascript事件

时间:2013-04-05 20:09:05

标签: javascript dart

在Dart中有没有办法从javascript库中侦听事件?

例如,当有人释放滑块时,jqrangeslider http://ghusse.github.io/jQRangeSlider/包会发出userValueChanged事件。

通过js / js.dart包在Dart中监听该事件是否容易?

很想在Dart中看到一些侦听器的例子,它会从javascript库中侦听这样的事件。

1 个答案:

答案 0 :(得分:4)

感谢js package,您可以处理几乎所有的js代码。以下是以下javascript代码段的dart版本:

$("#slider").bind("valuesChanged", function(e, data){
  console.log("Will be executed");
});

在达特:

js.scoped((){
  js.context.jQuery("#slider").bind("valuesChanged", new js.Callback.many((e, data) {
    print("Will be executed");
  }));
});

请注意,我使用jQuery代替$,因为否则会遇到 dart2js 的问题(请参阅issue 2265)。

基本上,当你在JS中使用回调函数时,你必须使用js.Callback.manyjs.Callback.once来包装你的回调。有关详细信息,请参阅Managing callback lifetimes