通常,我创建一个我需要监听(Mouse)事件的元素。然后,稍后,我不再需要按钮了,所以我将其删除。像这样:
var button = new ButtonElement()
..onClick.listen((_) => print("Clicked!"));
// ... somewhere else in the code or in the callback above
button.remove();
我是否还应该处理onClick
订阅(以防止内存泄漏)或是否为我处理?
答案 0 :(得分:0)
我怀疑这不会通过从DOM中删除元素自动完成,因为您可能会在另一点重新插入它。 remove()
的源代码非常简单:
Node remove() {
// TODO(jmesserly): is parent == null an error?
if (parentNode != null) {
parentNode.nodes.remove(this);
}
return this;
}
但是,如果没有对该对象的其他引用,并且垃圾收集器会清理Element类,那么我希望订阅会随之而来(虽然我不知道如何从中确认来源!)。