听Dart的javascript事件 [英] Listen to javascript events from Dart

查看:369
本文介绍了听Dart的javascript事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Dart中有没有方法来监听来自javascript库的事件?



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



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



希望在Dart中看到一些监听器的例子,它们可以监听来自javascript库的事件。

解决方案

感谢 js包你可以处理几乎所有的js代码。以下是以下JavaScript代码段的dart版本:

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

在Dart中:

  js.scoped((){
js.context.jQuery(#slider)。bind(valuesChanged,new js.Callback.many( e,data){
print(Will be executed);
}));;
});注意,我使用 jQuery 代替


$ b $ ,因为您会遇到 问题(参见 issue 2265 )。



基本上,当你在JS中使用回调函数时,你必须使用 js.Callback.many js.Callback.once 来包装您的回调。有关详情,请参见管理回调生命周期。 p>

Is there a way in Dart to listen for events from javascript libraries?

For example the jqrangeslider http://ghusse.github.io/jQRangeSlider/ package emits a userValueChanged event when someone releases the slider.

Is it easy to listen for that event in Dart via the js/js.dart package?

Would love to see some examples of a listener in Dart that listens for events like this from a javascript library.

解决方案

Thanks to js package you can deal with almost all js code. Here is the dart version of the following javascript code snippet :

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

In Dart :

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

Note that I use jQuery instead of $ because you would have issue with dart2js otherwise (see issue 2265).

Basically, when you use callback functions in JS, you have to use js.Callback.many or js.Callback.once to wrap your callback. See Managing callback lifetimes for more details.

这篇关于听Dart的javascript事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆