新库中删除事件监听器(Remove event listener with the new libr

2019-07-18 13:57发布

如何删除了我以前注册的新镖库中的事件监听器?

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

element.onMouseMove.listen

这样做有什么等价版本?

element.on.mouseMove.remove

Answer 1:

element.onMouseMove.listen(...)返回一个StreamSubscription 。 简单地调用它取消()方法来停止接收事件。



Answer 2:

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

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

“感动”这个打印,当您在移动鼠标“点击我!” 文本(从标准镖样品)。 单击时,它停止。



文章来源: Remove event listener with the new library
标签: dart