angular怎么移除事件监听
在一个controller代码块被释放掉的时候,我们通常要将一些监听的事件同时释放掉,正常的$scope是不需要我们来维护的。
当我们对$rootScope进行监听的时候,类似的全局变量或者说在其他地方依然有引用的变量是不会被释放掉的,而我们在controller中对rootScope做对应的事件监听,比如说stateChange等,每次controller初始化都要监听一次 。
移除监听事件的做法是,在rootScope.on方法上,接受它的返回值(是一个function),当scope将要destroy的时候,将返回的函数执行一,然后把对应的引用同时删掉即可。
Javascript代码:
var listener = $rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams){
......
});
$scope.$on('$destroy',function() {
listener();
listener = null;
})本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!