Estou fazendo uma demonstração na qual estou obtendo dados do servidor após intervalos regulares de tempo usando $interval
Agora, preciso parar / cancelar isso.
Como posso conseguir isso? Se eu precisar reiniciar o processo, como devo fazer isso?
Em segundo lugar, tenho mais uma pergunta: estou obtendo dados do servidor após reqular intervalos de tempo. Existe alguma necessidade de usar $scope.apply
ou $scope.watch
?
Aqui está o meu êmbolo:
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')
}) ;
}
});
fonte
apply()
, se estiver usando o$interval
serviço, já que ele faz isso por você. Mas se você estiver usando o integradosetInterval()
, talvez seja necessário usar$scope.$apply()
.$destroy
funciona bem em conjunto com ohttp-auth-interceptor
como no meu caso eu quero parar o intervalo durante o auth falha (como sessão expirada) e começar de novo depois auth succesfull. Obrigado por esta excelente solução.fonte
fonte
$location.path()
nome do estado e não o nomefonte
Quando você deseja criar uma promessa de armazenamento de intervalo para variável:
E quando quiser parar / limpar o intervalo, basta usar:
fonte