## 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;
})
```
- 步入JavaScript的世界
- 二进制运算
- JavaScript 的版本是怎么回事?
- JavaScript和DOM的产生与发展
- DOM事件处理
- js的并行加载与顺序执行
- 正则表达式
- 当遇上this时
- Javascript中apply、call、bind
- JavaScript的编译过程与运行机制
- 执行上下文(Execution Context)
- javascript 作用域
- 分组中的函数表达式
- JS之constructor属性
- Javascript 按位取反运算符 (~)
- EvenLoop 事件循环
- 异步编程
- JavaScript的九个思维导图
- JavaScript奇淫技巧
- JavaScript:shim和polyfill
- ===值得关注的库===
- ==文章==
- JavaScript框架
- Angular 1.x
- 启动引导过程
- $scope作用域
- $q与promise
- ngRoute 和 ui-router
- 双向数据绑定
- 规范和性能优化
- 自定义指令
- Angular 事件
- lodash
- Test