jcu*_*bic 10 javascript javascript-events angularjs
我有一个代码在init上使用$ scope.$,然后在函数中,所以代码执行多次.如果在再次绑定它之前我怎么能解除绑定.我试过$ scope.$ off但是没有这样的功能,docs.angularjs.org/api对$ on一无所知.我正在使用角度1.0.6.
sun*_*tha 30
如果你没有取消注册事件,你将收到内存泄漏,因为传递给$ on的函数将不会被清除(因为它的引用仍然存在).更重要的是,任何在其范围内起作用引用的变量也将被泄露.如果在应用程序中多次创建/销毁控制器,这将导致您的函数被多次调用.幸运的是,AngularJS提供了一些有用的方法来避免内存泄漏和不必要的行为:
请参阅文档
示例代码:
angular.module("TestApp")
.controller("TestCtrl",function($scope,$rootScope){
var cleanUpFunc = $scope.$on('testListener', function() {
//write your listener here
});
//code for cleanup
$scope.$on('$destroy', function() {
cleanUpFunc();
};
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10793 次 |
| 最近记录: |