我通过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']
任何想法我做错了什么?
感谢。
答案 0 :(得分:1)
您收到此错误,因为回调应该有一个参数(handler parameter of on
documentation采用eventObject
参数)。所以你的代码应该是:
js.context.jQuery("#myModal").on("shown", new js.Callback.many((eventObject) {
print("Dialog Shown");
}));
另请注意使用js.Callback.many
代替js.Callback.once
。前者允许多次调用回调。