2013-01-23 6 views
6

Wie entferne ich einen Listener für ein Ereignis, bei dem ich mich zuvor bei der neuen Dart-Bibliothek registriert habe?Ereignis-Listener mit der neuen Bibliothek entfernen

Ich verwende dies für Veranstaltungen mit der neuen Bibliothek zu hören:

element.onMouseMove.listen 

Was die äquivalente Version ist das?

element.on.mouseMove.remove 

Antwort

12

element.onMouseMove.listen(...) gibt ein StreamSubscription. Rufen Sie einfach die Methode cancel() auf, um den Empfang von Ereignissen zu beenden.

14

Neben Alexandre Antwort wird ein konkretes Beispiel in Code würde wie folgt aussehen:

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);  
} 

Dies druckt „Verschoben“, wenn Sie die Maus über das „Klick mich!“ Bewegen Text (aus der Standardpfeilprobe). Wenn geklickt wird, stoppt es.

Verwandte Themen