2

你如何将这个函数从 Javascript 翻译成 Dart?

function addEvtListener(Element el, evtName, fn) {
    return el.addEventListener ? el.addEventListener(evtName, fn, false) : el.attachEvent('on' + evtName, fn);
}

主要问题是事件名称是动态的。我显然可以打电话:

el.onClick.listen((event) => fn(event));

如果evtName是点击事件。但是 Dart 中有这样的方法吗?

el.on("click").listen(event) => fn(event));
4

2 回答 2

3

Events 类文档概述了按名称侦听事件的不同方法:http: //api.dartlang.org/docs/releases/latest/dart_html/Events.html

你会发现你可以同时做到:

new EventStreamProvider(evtName).forTaget(el).listen(fn);

或者

el.on[evtName].listen(fn);
于 2013-06-22T23:11:53.950 回答
2

您可以使用 :

(const EventStreamProvider<Event>(evtName)).forTarget(el).listen((e) => fn(e));
于 2013-06-22T21:28:34.730 回答