赞
踩
angularjs会广播一个$destroy的事件在销毁scope和其父对象被删除时。
在做一些清除的任务或资源的时候,监听这个事件就变得非常的关键,否则就可能消耗内存和CUP.
下面是一个有问题的情况:
- module.controller("TestController", function($scope, $timeout) {
-
- var onTimeout = function() {
- $scope.value += 1;
- $timeout(onTimeout, 1000);
- };
- $timeout(onTimeout, 1000);
- $scope.value = 0;
-
- });
- module.controller("TestController", function($scope, $timeout) {
-
- var onTimeout = function() {
- $scope.value += 1;
- timer = $timeout(onTimeout, 1000);
- };
- var timer = $timeout(onTimeout, 1000);
-
- $scope.value = 0;
-
- $scope.$on("$destroy", function() {
- if (timer) {
- $timeout.cancel(timer);
- }
- });
- });

关注微信公众号:前端开发知识
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。