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

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

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

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

所以问题是

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

scope.$on("$destroy", function() { $(element).off(); }); 

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

非常感谢!

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

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

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

我必须不同意接受的答案,你的内存泄漏可能有其他原因。

看看这个是否有一个很好的答案: AngularJS – $ destroy会删除事件监听器吗?