我正在做一個演示,我正在使用$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