Используя библиотеку Closure, вы можете дать любому объекту возможность отправлять события, расширяющие goog.events.EventTarget
. Возможно ли в настоящее время использовать библиотеки Dart?Реализация EventTarget на пользовательских объектах
Я предполагаю, что это будет выглядеть следующим образом:
#import('dart:html');
class Foo implements EventTarget {
Events get on() {
// ???
}
}
main() {
Foo foo = new Foo();
// Subscribe to the event.
foo.on['bar'].add((Event event) => print('bar!'));
// Dispatch the event.
foo.on['bar'].dispatch(new Event('bar'));
}
Я на правильном пути?
Редактировать Благодаря Lars Tackmann, рабочий проект здесь: http://try.dartlang.org/s/f6wk
Woah. Это выглядит намного проще, чем я думал. Спасибо за полный пример и снимок от дартс. :) Схема автобусов событий для меня нова, но я больше об этом прочитаю. – moraes
Ваш фрагмент DartBoard позволяет зарегистрировать одного слушателя (см .: http://try.dartlang.org/s/8rsk). Вот версия, которая поддерживает несколько: http://try.dartlang.org/s/LBkk – moraes