当在angular controller中用到了$interval,则必须在特定时间手动清楚定时器,不然该定时器将会一直执行下去。函数
$interval.cancel( timer );
若是但愿在该DOM从页面上移除时,中止该定时器code
$scope.$on( "$destroy", function() { $interval.cancel( timer ); } );
完整实例说明事件
// 定时器 定时刷新数据 var timer = $interval( function() { hello();//本身定义的每次须要执行的函数,也能够写一些其余的内容 }, 5000 ); //当DOM元素从页面中被移除时,AngularJS将会在scope中触发$destory事件。 //这让咱们能够有机会来cancel任何潜在的定时器。切换controller、页面后便可调用 $scope.$on( "$destroy", function() { $interval.cancel( timer ); } );