angularJS中$scope删除监听事件的操作
程序员文章站
2022-04-27 13:06:10
...
在一个controller代码块被释放掉的时候,我们通常要将一些监听的事件同时释放掉
正常的$scope是不需要我们来维护的
但是当我们对$rootScope进行监听的时候,类似的全局变量或者说在其他地方依然有引用的变量是不会被释放掉的,而我们在controller中对rootScope做对应的事件监听,比如说stateChange等,每次controller初始化都要监听一次
删除监听的做法是,在rootScope.on方法上,接受它的返回值(是一个function),当scope将要destroy的时候,将返回的函数执行一边,然后把对应的引用同时删掉即可
类似代码如下
正常的$scope是不需要我们来维护的
但是当我们对$rootScope进行监听的时候,类似的全局变量或者说在其他地方依然有引用的变量是不会被释放掉的,而我们在controller中对rootScope做对应的事件监听,比如说stateChange等,每次controller初始化都要监听一次
删除监听的做法是,在rootScope.on方法上,接受它的返回值(是一个function),当scope将要destroy的时候,将返回的函数执行一边,然后把对应的引用同时删掉即可
类似代码如下
var listener = $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){ ...... }); $scope.$on('$destroy',function() { listener(); listener = null; })
下一篇: H5响应式网站建设要注意的方面?