AngularJS断开绑定的正确方法是什么?
我有一个无角度的应用程序,它正在加载一个使用angularjs进行数据绑定的组件。在某些时候,我想破坏组件,并希望确保没有内存泄漏。如何告诉angular从DOM的那一部分删除所有事件监听器?
$(node).remove()
会不会做这个伎俩,或者角色会在内存中做其他需要清理的东西......?关于避免角度内漏泄漏的任何其他提示将不胜感激。
答案 0 :(得分:10)
仅删除具有类似remove()
之类的Scope的DOM元素将不会消除内存中的Scope。您可以通过删除元素并查看Batarang,或通过获取父范围并检查其子项来确认这一点。你会看到范围仍然存在....所以你也想在范围本身上调用$destroy()
。
More information about $destroy() can be found here
编辑:我不确定的一件事是,它是否完全删除了作用域,或者只是将其断开连接并让JavaScript GC处理其余部分。