`
LiYunpeng
  • 浏览: 936961 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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

阅读更多
在一个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;
    })
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics