0

我通过 js interop 在 Dart 中使用 Bootstrap Modal 对话框。除了侦听自定义事件之外,一切正常。我正在尝试使用以下代码收听“显示”事件:

js.scoped(() {
  js.context.jQuery("#myModal").on("shown", new js.Callback.once(() {
    print("Dialog Shown");         
  }));
});

但是,触发事件时出现以下 Dart 错误:

Class '() => dynamic' has no instance method 'call'.\n\nNoSuchMethodError : method not found: 'call'\nReceiver: Closure: (dynamic) => dynamic\nArguments: [Instance of 'Proxy']

任何想法我做错了什么?

谢谢。

4

1 回答 1

1

您收到此错误是因为回调应该有一个参数(文档的处理程序参数on需要一个eventObject参数)。所以你的代码应该是:

js.context.jQuery("#myModal").on("shown", new js.Callback.many((eventObject) {
  print("Dialog Shown");
}));

还要注意使用 ofjs.Callback.many而不是js.Callback.once。前者允许多次调用回调。

于 2013-04-24T14:40:10.830 回答