diff --git a/js/angular/service/loading.js b/js/angular/service/loading.js index 354be3723e..20440daa38 100644 --- a/js/angular/service/loading.js +++ b/js/angular/service/loading.js @@ -158,8 +158,11 @@ function($ionicLoadingConfig, $document, $ionicTemplateLoader, $ionicBackdrop, $ $ionicBackdrop.release(); $ionicBackdrop.getElement().removeClass('backdrop-loading'); } - self.element.removeClass('active'); - $document[0].body.classList.remove('loading-active'); + // wrapping in a timeout to make process asyncronous + $timeout(function(){ + self.element.removeClass('active'); + $document[0].body.classList.remove('loading-active'); + }, 10); setTimeout(function() { !self.isShown && self.element.removeClass('visible'); }, 200); diff --git a/test/unit/angular/service/loading.unit.js b/test/unit/angular/service/loading.unit.js index 36f0a9cf69..9ee62e1ffd 100644 --- a/test/unit/angular/service/loading.unit.js +++ b/test/unit/angular/service/loading.unit.js @@ -89,6 +89,7 @@ describe('$ionicLoading service', function() { $timeout.flush(); expect(angular.element(document.body).hasClass('loading-active')).toBe(true); loader.hide(); + $timeout.flush(); expect(angular.element(document.body).hasClass('loading-active')).toBe(false); }));