【问题标题】:AngularJS directive/controller lifecycle and unbinding $watch and $on listenersAngularJS 指令/控制器生命周期和解除绑定 $watch 和 $on 监听器
【发布时间】:2013-08-02 09:34:58
【问题描述】:

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

从不是最清楚的文档来看,我猜您不必取消绑定到当前范围内的任何侦听器,但我不确定您是否必须取消绑定到说的侦听器,例如 $rootScope。

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

谢谢

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    Angular 为您处理。

    当作用域被销毁时(例如,当通过 ng-view 指令加载新视图时,旧视图的作用域被销毁)它的所有子作用域都被销毁,并且它们的 $watchers 和 listeners 也通过 $on 注册。

    $rootScope 在您的应用程序的生命周期内根本不会被销毁,因此您必须手动管理它的侦听器,但通常您在那里注册应该是永久性的东西。

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

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      相关资源
      最近更新 更多