Estoy haciendo una demostración en la que obtengo datos del servidor después de intervalos regulares de tiempo usando $interval
Ahora necesito detener / cancelar esto.
¿Cómo puedo lograr esto? Si necesito reiniciar el proceso, ¿cómo debo hacerlo?
En segundo lugar, tengo una pregunta más: estoy obteniendo datos del servidor después de los intervalos de tiempo requeridos. ¿Es necesario utilizar $scope.apply
o $scope.watch
?
Aquí está mi 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')
}) ;
}
});
fuente
apply()
si está usando el$interval
servicio, ya que lo hace por usted. Pero si está utilizando el integrado,setInterval()
es posible que deba utilizar$scope.$apply()
.$destroy
trabaja bien junto con elhttp-auth-interceptor
como en mi caso en el que quiero dejar el intervalo durante autenticación falla (como la sesión ha expirado) y empezar de nuevo después de autenticación exitosa. Gracias por esta excelente solución.fuente
fuente
$location.path()
nombre del estado y no el del estadofuente
Cuando desee crear una promesa de tienda de intervalo a la variable:
Y cuando desee detener / borrar el intervalo, simplemente use:
fuente