当角度开始破坏时,我们是否需要在指令中取消绑定事件监听器?
我的应用程序中存在大量内存泄漏但我没有找到原因,这是后台。
- 我正在使用AngularJS + JQuery(插件)
-
许多听众都受到如下约束:
$(element).on(“keyup”,function(){});
所以问题是
我是否需要通过以下方式取消绑定指令中的听众?
scope.$on("$destroy", function() { $(element).off(); });
顺便说一句,你如何找到Web应用程序中的内存泄漏? 我使用chrome的配置文件(请参阅此处的Profiling内存性能 ),但我无法跟踪内存泄漏的代码。 你有什么建议吗?
非常感谢!
范围销毁的Angular文档意味着您确实需要删除DOM事件。
http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy
请注意,在AngularJS中,还有一个$ destroy jQuery事件,可以在从DOM中删除元素之前清除DOM绑定。
我必须不同意接受的答案,你的内存泄漏可能有其他原因。
看看这个是否有一个很好的答案: AngularJS – $ destroy会删除事件监听器吗?