Sto cercando di mostrare o nascondere un indicatore di caricamento su un pulsante quando una richiesta è occupata. Lo faccio con angular modificando la variabile $ scope.loading quando una richiesta viene caricata o quando ha terminato il caricamento.
$scope.login = function(){
$scope.loading = true;
apiFactory.getToken()
.success(function(data){
})
.error(function(error){
})
.finally(function(){
$timeout(function() {
$scope.loading = false;
}, 0);
});
};
Nel frontend:
<button ng-disabled="loading" class="button button-outline button-positive" type="submit">
Log in
<span ng-if="loading" class="ion-refreshing"></span>
</button>
Funziona bene, ma l'icona di caricamento (ion-refreshing) viene visualizzata per circa 2 secondi, mentre la variabile $ scope viene aggiornata immediatamente. Ho provato $ scope. $ Apply ma non sembra essere ciò che non va qui, l'ambito viene aggiornato correttamente e immediatamente dopo la richiesta. È solo l'icona che non risponde abbastanza rapidamente.
Grazie per avermi aiutato a capire questo!