Dart 中有没有办法监听来自 javascript 库的事件?
例如,当有人释放滑块时,jqrangeslider http://ghusse.github.io/jQRangeSlider/包会发出 userValueChanged 事件。
通过 js/js.dart 包在 Dart 中监听该事件是否容易?
希望看到 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");
});
在飞镖中:
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.many
或js.Callback.once
包装你的回调。有关更多详细信息,请参阅管理回调生命周期。