欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

angularJS中$scope删除监听事件的操作

程序员文章站 2022-04-27 13:06:10
...
在一个controller代码块被释放掉的时候,我们通常要将一些监听的事件同时释放掉
正常的$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;
    })