我有一个代码,它在$ init上一次使用$ scope。$,然后在一个函数中使用,因此该代码被多次执行。如果先解除绑定,再重新绑定它。我试过$ scope。$ off,但是没有这样的功能,docs.angularjs.org/api不谈$ on。我正在使用角度1.0.6。
如果不取消注册该事件,则会泄漏内存,因为传递给$ 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();
};
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句