通过JQuery“打开”在Dart中侦听事件 [英] Listening for event in Dart via JQuery "on"

查看:314
本文介绍了通过JQuery“打开”在Dart中侦听事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过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屋!

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