2013-01-23 419 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);  
} 

「感動」這個打印,當您在移動鼠標「點擊我!」文字(來自標準飛鏢樣本)。點擊後,它停止。