2013-06-22 2 views
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)); 

답변

2

당신은 사용할 수 있습니다

(const EventStreamProvider<Event>(evtName)).forTarget(el).listen((e) => fn(e)); 
3

이벤트 클래스 문서는 이름으로 이벤트를 수신 할 수있는 다른 방법의 개요를 가지고 : http://api.dartlang.org/docs/releases/latest/dart_html/Events.html

당신은 당신이 할 수있는 것을 볼 수 있습니다 모두 :

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

또는

el.on[evtName].listen(fn); 
관련 문제