J'essaie d'afficher ou de masquer un indicateur de chargement sur un bouton lorsqu'une demande est occupée. Je fais cela avec angular en modifiant la variable $ scope.loading lorsqu'une requête est en cours de chargement ou lorsqu'elle est terminée.
$scope.login = function(){
$scope.loading = true;
apiFactory.getToken()
.success(function(data){
})
.error(function(error){
})
.finally(function(){
$timeout(function() {
$scope.loading = false;
}, 0);
});
};
Dans le frontend:
<button ng-disabled="loading" class="button button-outline button-positive" type="submit">
Log in
<span ng-if="loading" class="ion-refreshing"></span>
</button>
Cela fonctionne bien, mais l'icône de chargement (rafraîchissement des ions) est affichée pendant environ 2 secondes, tandis que la variable $ scope est mise à jour immédiatement. J'ai essayé $ scope. $ Apply mais cela ne semble pas être ce qui ne va pas ici, la portée est mise à jour très bien et immédiatement après la demande. C'est juste l'icône qui ne répond pas assez rapidement.
Merci de m'avoir aidé à comprendre cela!