14

AngularJS 中断开绑定的正确方法是什么?

我有一个非角度应用程序,它正在加载一个使用 angularjs 进行数据绑定的组件。在某些时候,我想销毁组件并希望确保没有内存泄漏。如何告诉 Angular 从 DOM 的那部分删除所有事件侦听器?

$(node).remove()做到这一点,还是 angular 会在内存中做其他需要清理的事情......?任何其他有关避免角度内存泄漏的提示将不胜感激。

4

1 回答 1

10

仅删除具有类似 Scope 的 DOM 元素remove()不会摆脱内存中的 Scope。您可以通过删除一个元素并查看Batarang来确认这一点,或者通过获取父范围并检查它的子范围来确认这一点。您会看到范围仍然存在......所以您还需要调用$destroy()Scope 本身。

更多关于 $destroy() 的信息可以在这里找到

编辑:我不确定的一件事是它是否完全删除了范围,或者只是断开它并让 JavaScript GC 处理其余部分。

于 2012-12-12T19:44:58.503 回答