Estoy tratando de mostrar u ocultar un indicador de carga en un botón cuando una solicitud está ocupada. Hago eso con angular cambiando la variable $ scope.loading cuando se carga una solicitud o cuando se termina de cargar.
$scope.login = function(){
$scope.loading = true;
apiFactory.getToken()
.success(function(data){
})
.error(function(error){
})
.finally(function(){
$timeout(function() {
$scope.loading = false;
}, 0);
});
};
En la interfaz:
<button ng-disabled="loading" class="button button-outline button-positive" type="submit">
Log in
<span ng-if="loading" class="ion-refreshing"></span>
</button>
Esto funciona bien, pero el ícono de carga (actualización de iones) se muestra durante aproximadamente 2 segundos, mientras que la variable $ scope se actualiza inmediatamente. Intenté $ scope. $ Apply pero eso no parece ser lo que está mal aquí, el alcance se actualiza bien e inmediatamente después de la solicitud. Es solo el ícono que no responde lo suficientemente rápido.
¡Gracias por ayudarme a entender esto!