AngularJS指令/控制器生命周期和unbinding $ watch和$ on listeners

时间:2013-08-02 09:34:59

标签: angularjs

我目前正在我的一个项目中使用AngularJS,我不确定何时/是否需要手动取消绑定到$ scope(或者在指令的链接函数中作用范围)的侦听器。

从文档中,这不是最清楚的,我猜你不必解除当前范围内的任何听众的绑定,但我不确定你是否必须解除对听众的束缚,例如$ rootScope。

有关组件生命周期的任何说明,例如指令或指令的控制器,将不胜感激。

由于

1 个答案:

答案 0 :(得分:6)

Angular为您处理。

当范围被销毁时(例如,当通过ng-view指令加载新视图时,旧视图的范围被销毁)所有它的子范围都被销毁,而他们的观察者和监听器也通过$ on注册。

$ rootScope在应用程序的生命周期内根本不会被销毁,所以你必须手动管理它的监听器,但通常你会注册那些永久性的东西。

当您通过addEventListener注册侦听器时,您必须手动删除它们,因为它不是通过角度管理的。