多应用+插件架构,代码干净,支持一键云编译,码云点赞13K star,4.8-4.12 预售价格198元 广告
## angularJS中$scope删除监听事件的操作 在一个`controller`代码块被释放掉的时候,我们通常要将一些监听的事件同时释放掉 正常的`$scope`是不需要我们来维护的 但是当我们对`$rootScope`进行监听的时候,类似的全局变量或者说在其他地方依然有引用的变量是不会被释放掉的,而我们在controller中对`$rootScope`做对应的事件监听,比如说`stateChange`等,每次`controller`初始化都要监听一次。 删除监听的做法是,在`$rootScope.on`方法上,接受它的返回值(是一个function),当`scope`将要`destroy`的时候,将返回的函数执行一边,然后把对应的引用同时删掉即可 类似代码如下: ```js var listener = $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){ ...... }); $scope.$on('$destroy',function() { listener(); listener = null; }) ```