Ответ 1
Это должно работать:
window.on['foo'].listen((e) => print("foo was here"));
Смотрите документы:
Я хочу сделать что-то вроде
// 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] ));
: -)
Это должно работать:
window.on['foo'].listen((e) => print("foo was here"));
Смотрите документы:
Вы сказали, что хотите передать данные. Предположим, что мы имеем этот класс:
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);
Это способ сделать это. См. Документацию: