【发布时间】:2015-01-29 16:43:23
【问题描述】:
我只是想知道是否有任何 $scope.$watch/$scope.$watchCollection/$scope.$on 在 $scope 上调用 $destroy 事件时会自动注销。我看到它们都返回了一个注销函数,我想知道在 $scope 销毁事件上调用这些函数是否是一种很好的做法,或者 Angular 会自己这样做。我现在出于性能原因这样做,但如果这种情况自动发生,那么我将停止直接调用这些函数。
【问题讨论】:
我只是想知道是否有任何 $scope.$watch/$scope.$watchCollection/$scope.$on 在 $scope 上调用 $destroy 事件时会自动注销。我看到它们都返回了一个注销函数,我想知道在 $scope 销毁事件上调用这些函数是否是一种很好的做法,或者 Angular 会自己这样做。我现在出于性能原因这样做,但如果这种情况自动发生,那么我将停止直接调用这些函数。
【问题讨论】:
如果您正在侦听 $destroy 事件,则意味着您的 $scope 将被销毁,因此所有 $watches 将自动删除,因此您不需要这样做,这就是为什么最好在当前注册 $watches $scope 而不是$rootScope(因为只要应用程序正在运行或您手动取消注册,它们就会一直存在)。如果您自己调用 $destroy 事件/方法,也是一样。
【讨论】: