我正在做一个演示,我正在使用$interval
定期的时间间隔从服务器获取数据。现在我需要停止/取消这个。如何清除或停止angularjs中的timeInterval?
我该如何做到这一点?如果我需要重新启动流程,我应该怎么做?其次,我还有一个问题:我在时间间隔后从服务器获取数据。有没有必要使用$scope.apply
或$scope.watch
?
这里是我的plunker:
app.controller('departureContrl',function($scope,test, $interval){
setData();
$interval(setData, 1000*30);
function setData(){
$scope.loading=true;
test.stationDashBoard(function(data){
console.log(data);
$scope.data=data.data;
$scope.loading=false;
//alert(data);
},function(error){
alert('error')
}) ;
}
});
http://plnkr.co/edit/ly43m5?p=preview
@thanks答复..是有什么需要补充申请,或者当我从服务reqular的时间间隔获取时间 – user944513 2014-10-19 06:54:38
不,你看数据如果您使用'$ interval'服务,则不需要使用'apply()',因为它可以为您提供服务。但是如果你使用内建的'setInterval()',那么你可能不得不使用'$ scope。$ apply()'。 – ryeballar 2014-10-19 07:00:24
非常好的解决方案。 ''destroy'和'http-auth-interceptor'一起工作良好,就像我想在auth失败期间停止时间间隔(如过期会话)并在成功验证后再次启动一样。感谢您提供这个出色的解决方案。 – Neel 2015-11-14 15:26:38