Sto facendo una demo in cui sto recuperando i dati dal server dopo intervalli regolari di tempo usando $interval
Ora ho bisogno di fermarsi/annullare questo.Come cancellare o fermare timeInterval in angularjs?
Come posso ottenere questo? Se ho bisogno di riavviare il processo, come dovrei farlo?
In secondo luogo, ho ancora una domanda: sto recuperando i dati dal server dopo intervalli regolari di tempo. È necessario utilizzare $scope.apply
o $scope.watch
?
Ecco il mio 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 per la risposta ..è c'è alcuna necessità di aggiungere applicare o guardare quando sto il recupero dei dati dal servizio intervallo di tempo reqular – user944513
No non è necessario usare 'apply()', se stai usando il servizio '$ interval', dato che lo fa per te. Ma se stai usando il 'setInterval()' predefinito allora potresti dover usare '$ scope. $ Apply()'. – ryeballar
Ottima soluzione. Il '$ destroy' funziona bene insieme a 'http-auth-intercettatore' come nel mio caso in cui voglio interrompere l'intervallo durante l'errore di autenticazione (come la sessione scaduta) e ricominciare dopo un'autenticazione riuscita. Grazie per questa eccellente soluzione. – Neel