记录一下使用angular $interval遇到的坑

记录一下使用$interval遇到的坑

当在angular controller中用到了$interval,则必须在特定时间手动清楚定时器,否则该定时器将会一直执行下去。

清除方法


$interval.cancel( timer );

如果希望在该DOM从页面上移除时,停止该定时器


$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 );

  }

);

你可能感兴趣的:(记录一下使用angular $interval遇到的坑)