2013-04-24 2 views
0

Я использую диалог Bootstrap Modal в Dart через js interop. Все работает нормально, кроме прослушивания пользовательских событий. Я пытаюсь слушать «показанного» события, используя следующий код:Прослушивание события в Dart через JQuery «on»

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'] 

Любые идеи, что я в делать не так?

Спасибо.

ответ

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. Первый позволяет вызвать обратный вызов несколько раз.

+0

Спасибо. Я смотрел документы Bootstrap, где указана функция обработчика без параметров. '$ ('# myModal'). On ('показано', function() { // что-то делать })' – mark

Смежные вопросы