0

У меня возникла эта странная проблема с директивой $ ionicLoading. Я пытаюсь показать загрузчик при каждом изменении состояния.

.run(['$rootScope','$ionicLoading', function ($rootScope, $ionicLoading){ 
    $rootScope.$on('loading:show', function() { 
    $rootScope.loading = $ionicLoading.show({ 
     template: '<ion-spinner icon="android"></ion-spinner>', 
     delay: 1 
    }).then(function(){ 
     console.log('showing loader'); 
    }, function(error){ 
     console.log('something is breaking'); 
    }); 
    }); 
    $rootScope.$on('loading:hide', function() { 
    $ionicLoading.hide(); 
    }); 
    $rootScope.$on('$stateChangeStart', function() { 
    console.log('please wait...'); 
    $rootScope.$broadcast('loading:show'); 
}); 

$rootScope.$on('$stateChangeSuccess', function() { 
    console.log('done'); 
    $rootScope.$broadcast('loading:hide'); 
    }); 
}]); 

На странице загрузки или на stateChangeStart, $ ionicLoading.show() становится называется, но она возвращается многообещающая ошибки (ошибка: отмененный, что-то ломается становится распечатано) & поэтому Loader не отображается.

Теперь, если я вызываю событие $rootScope.$broadcast('loading:show'); на $stateChangeSuccess, после события hide, появляется загрузчик. (Я узнал об этом, просто играя).

Любая помощь приветствуется.

ответ

0

Попробуйте

$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ 
    $ionicLoading.show(); 
}); 

$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) { 
    $ionicLoading.hide(); 
}); 

$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) { 
    console.error(error); 
    $ionicLoading.hide(); 
}); 
+0

Я не его отличается от того, что я сделал. Во всяком случае, это тоже не работает. $ IonicLoading.show(); возвращает обещание как ошибка. – amarmishra

+0

Какое обещание оно возвращает как ошибку? Это ни в коем случае не отличается от того, что вы сделали, просто проще, и я уже использовал и тестировал его. – mcrvaz

+0

Ошибка возврата по обещанию: 'cancel' – amarmishra

Смежные вопросы