我目前正在我的一个项目中使用AngularJS,我不确定何时/是否需要手动取消绑定到$ scope(或者在指令的链接函数中作用范围)的侦听器。
从文档中,这不是最清楚的,我猜你不必解除当前范围内的任何听众的绑定,但我不确定你是否必须解除对听众的束缚,例如$ rootScope。
有关组件生命周期的任何说明,例如指令或指令的控制器,将不胜感激。
由于
答案 0 :(得分:6)
Angular为您处理。
当范围被销毁时(例如,当通过ng-view指令加载新视图时,旧视图的范围被销毁)所有它的子范围都被销毁,而他们的观察者和监听器也通过$ on注册。
$ rootScope在应用程序的生命周期内根本不会被销毁,所以你必须手动管理它的监听器,但通常你会注册那些永久性的东西。
当您通过addEventListener注册侦听器时,您必须手动删除它们,因为它不是通过角度管理的。