当角度开始破坏时,我们是否需要在指令中取消绑定事件监听器?

Edw*_*ard 21 jquery memory-leaks event-listener angularjs

我的应用程序中存在大量内存泄漏但我没有找到原因,这是后台.

  • 我正在使用AngularJS + JQuery(插件)
  • 许多听众受到如下约束:

    $(element).on("keyup",function(){});

所以问题是

我是否需要通过以下方式取消绑定指令中的听众?

scope.$on("$destroy", function() {
    $(element).off();
}); 
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你如何找到Web应用程序中的内存泄漏?我使用chrome的配置文件(请参阅此处分析内存性能),但我无法跟踪内存泄漏的代码.你有什么建议吗?

非常感谢!

Sco*_*ing 14

范围销毁的Angular文档意味着您确实需要删除DOM事件.

http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$destroy

请注意,在AngularJS中,还有一个$ destroy jQuery事件,可以在从DOM中删除元素之前清除DOM绑定.