Estoy haciendo una demostración en la que obtengo datos del servidor después de intervalos regulares de tiempo usando $intervalAhora 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.applyo $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$intervalservicio, ya que lo hace por usted. Pero si está utilizando el integrado,setInterval()es posible que deba utilizar$scope.$apply().$destroytrabaja bien junto con elhttp-auth-interceptorcomo 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