2013-04-05 78 views
3

飞镖有没有一种方法可以侦听来自JavaScript库的事件?听从飞镖的javascript事件

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

通过js/js.dart包容易听到Dart中的那个事件吗?

很想看到Dart中的一个侦听器的一些示例,这些示例从JavaScript库中监听类似这样的事件。

回答

4

感谢js package你可以处理几乎所有的js代码。这里是下面的JavaScript代码片段的镖版本:

$("#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,而不是$,因为你将有问题与dart2js否则(见issue 2265 )。

基本上,当您在JS中使用回调函数时,必须使用js.Callback.manyjs.Callback.once来包装回调。有关更多详情,请参阅Managing callback lifetimes

+0

当我做你已经建议使用** jQuery **的时候,我得到这个错误:**方法'jQuery'没有为类'Proxy'**定义。有什么建议么? ps:同样的错误,如果我使用$ :-( – Softinio 2013-09-05 06:00:23

+0

它只是一个警告,将在未来几天消失,但代码应该工作 – 2013-09-05 07:43:34

+0

代码无法正常工作,我会发布作为答案,如果你能请指点我正确的方向。谢谢。 – Softinio 2013-09-05 14:50:23