通过JQuery“打开”在Dart中侦听事件 [英] Listening for event in Dart via JQuery "on"
问题描述
我通过js interop在Dart中使用Bootstrap Modal对话框。除了听自定义事件,所有工作正常。我想使用下面的代码收听显示事件:
I am using a Bootstrap Modal dialog in Dart via js interop. All works OK apart from listening for the custom events. I am trying to listen to the "shown" event using the following code:
js.scoped(() {
js.context.jQuery("#myModal").on("shown", new js.Callback.once(() {
print("Dialog Shown");
}));
});
但是,当事件触发时,我得到以下Dart错误:
However, I get the following Dart error when the event is fired:
Class '() => dynamic' has no instance method 'call'.\n\nNoSuchMethodError : method not found: 'call'\nReceiver: Closure: (dynamic) => dynamic\nArguments: [Instance of 'Proxy']
任何想法我做错了什么?
Any ideas what I'm doing wrong?
感谢。
推荐答案
有一个参数( 在
文档中的处理程序参数)取一个 eventObject
参数)。所以你的代码应该是:
You get this error because the callback should have one parameter (handler parameter of on
documentation take a eventObject
parameter). So your code should be :
js.context.jQuery("#myModal").on("shown", new js.Callback.many((eventObject) {
print("Dialog Shown");
}));
注意使用 js.Callback.many
而不是 js.Callback.once
。前者允许回调被多次调用。
Note also the use of js.Callback.many
instead of js.Callback.once
. The former allows the callback to be called several times.
这篇关于通过JQuery“打开”在Dart中侦听事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!