angularjs 定时器 销毁
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)); } } });