2013-01-23 203 views
6

如何删除我以前使用新的dart库注册过的事件的侦听器?删除新库的事件侦听器

我使用这个监听新库事件:

element.onMouseMove.listen 

这样做有什么等价版本?

element.on.mouseMove.remove 

回答

14

除了亚历山大的回答,在代码中一个具体的例子是这样的:

import 'dart:html'; 

void main() { 
    var listener = (e) => print("Moved"); 

    var element = query("#text"); 
    var streamsub = element.onMouseMove.listen(listener); // <--- add the listener 

    var reverseText= (Event event) { 
    var text = query("#text").text; 
    var buffer = new StringBuffer(); 
    for (int i = text.length - 1; i >= 0; i--) { 
     buffer.add(text[i]); 
    } 
    query("#text").text = buffer.toString(); 

    streamsub.cancel(); // <---- stop listening 
    }; 

    element 
    ..text = "Click me!" 
    ..onClick.listen(reverseText);  
} 

“感动”这个打印,当您在移动鼠标“点击我!”文字(来自标准飞镖样本)。点击后,它停止。