Подтвердить что ты не робот

Как прослушивать пользовательские события в Dart?

Я хочу сделать что-то вроде

// WARNING: this code does not work, it illustrative
query("#myBtn").onClick.listen((e) {
  window.fire["foo"];
});

window.on["foo"].listen((e) => print("foo was here"));

window.on["foo"].listen((e) => print("and here"));

Возможно ли это? Как? Я уже несколько часов искал в Google, но я вообще не привык к программированию в целом, поэтому я действительно не знаю никаких ключевых слов для такого рода вещей.

Спасибо!:)

- EDIT: разрешено -

Здесь, как передать аргументы (редактор будет жаловаться, но он работает)

List<String> myData = ["one","two"];

query("#myBtn").onClick.listen((e) {
  window.on["foo"].dispatch(new CustomEvent("foo", canBubble: false, cancelable: false, detail: myData));
});

window.on["foo"].add((e) => print( e.detail[1] ));

: -)

4b9b3361

Ответ 2

Вы сказали, что хотите передать данные. Предположим, что мы имеем этот класс:

class Person {
    String name;
    int age;
}

то этот слушатель:

window.on['foo'].listen((e) {
  Person p = e.detail;

  print(p.name); // Jack
});

Все, что нам нужно для передачи данных, это написать что-то вроде:

var p = new Person()
  ..name = 'Jack'
  ..age = 25;

var e = new CustomEvent('foo', detail: p);

window.on['foo'].dispatch(e);

Это способ сделать это. См. Документацию: