Je fais une démo dans laquelle je récupère des données du serveur après des intervalles de temps réguliers en utilisant $interval
Maintenant, je dois arrêter / annuler cela.
Comment puis-je y parvenir? Si j'ai besoin de redémarrer le processus, comment dois-je le faire?
Deuxièmement, j'ai une autre question: je récupère les données du serveur après des intervalles de temps requis. Est-il nécessaire d'utiliser $scope.apply
ou $scope.watch
?
Voici mon 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')
}) ;
}
});
la source
apply()
, si vous utilisez le$interval
service, car il le fait pour vous. Mais si vous utilisez la fonction intégrée,setInterval()
vous devrez peut-être utiliser$scope.$apply()
.$destroy
fonctionne bien avec lahttp-auth-interceptor
comme dans mon cas où je veux arrêter l'intervalle pendant auth échec (comme la session a expiré) et recommencer après succesfull auth. Merci pour cette excellente solution.la source
la source
$location.path()
nom de l'état et non le nom de l'étatla source
Lorsque vous souhaitez créer une promesse de stockage d'intervalle à variable:
Et lorsque vous souhaitez arrêter / effacer l'intervalle, utilisez simplement:
la source