angular.module(‘app‘, []) ?.controller(‘ItemController‘, function($scope, $interval) { ?????// store the interval promise in this variable ???var promise; ?????// simulated items array ???$scope.items = []; ???????// starts the interval ???$scope.start = function() { ?????// stops any running interval to avoid two intervals running at the same time ?????$scope.stop(); ????????????// store the interval promise ?????promise = $interval(setRandomizedCollection, 1000); ???}; ?????// stops the interval ???$scope.stop = function() { ?????$interval.cancel(promise); ???}; ?????// starting the interval by default ???$scope.start(); ????// stops the interval when the scope is destroyed, ???// this usually happens when a route is changed and ????// the ItemsController $scope gets destroyed. The ???// destruction of the ItemsController scope does not ???// guarantee the stopping of any intervals, you must ???// be responsible for stopping it when the scope is ???// is destroyed. ???$scope.$on(‘$destroy‘, function() { ?????$scope.stop(); ???}); ???????????????function setRandomizedCollection() { ?????// items to randomize 1 - 11 ?????var randomItems = parseInt(Math.random() * 10 + 1); ??????????????// empties the items array ?????$scope.items.length = 0; ????????????// loop through random N times ?????while(randomItems--) { ???????????????// push random number from 1 - 10000 to $scope.items ???????$scope.items.push(parseInt(Math.random() * 10000 + 1)); ??????} ???} ???});
angularjs 定时器 销毁
原文地址:http://www.cnblogs.com/web-fusheng/p/7464974.html