是否建议始终使用 $on 方法,如
var dereg = $scope.$on(...)
然后
$scope.$on("$destroy", function() { dereg(); });
还是仅在某些情况下才需要?$watch 的同样问题
是否建议始终使用 $on 方法,如
var dereg = $scope.$on(...)
然后
$scope.$on("$destroy", function() { dereg(); });
还是仅在某些情况下才需要?$watch 的同样问题
AFAIK,您应该仅$destroy
在您的应用程序可能存在内存泄漏问题或僵尸事件时使用事件。
$destroy
当您将某些指令的变量传递给另一个指令或控制器时很有用,并且在元素被删除后,您想将其从引用中删除。
例如,您可能希望在指令在全局元素$destory
上创建事件处理程序并且带有指令的元素被删除时使用。DOM
假设这是指令中的链接函数:
function myEventListener(){console.log('scroll!');}
$window.bind('mousewheel',myEventListener);
scope.$on('$destroy',function(){$window.unbind(myEventListener)});
如果您不取消绑定事件侦听器,则在删除带有指令的元素后,scroll!
滚动时您仍然会收到消息。