当我们对$rootScope进行监听的时候,类似的全局变量或者说在其他地方依然有引用的变量是不会被释放掉的,而我们在controller中对rootScope做对应的事件监听,比如说stateChange等,每次controller初始化都要监听一次 。
移除监听事件的做法是,在rootScope.on方法上,接受它的返回值(是一个function),当scope将要destroy的时候,将返回的函数执行一,然后把对应的引用同时删掉即可。
类似代码如下
Javascript代码:
var listener = $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){ ...... }); $scope.$on('$destroy',function() { listener(); listener = null; })
以上就是angular怎么移除事件监听的详细内容,更多请关注易知道|edz.cc其它相关文章!