我遇到了$ 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()被调用但是它将promise作为错误返回(错误:取消,某些内容正在打印)&amp;因此装载机没有显示。
现在如果我在隐藏事件之后调用$rootScope.$broadcast('loading:show');
上的$stateChangeSuccess
事件,则显示加载程序。 (我只是在玩游戏时才知道这一点。)
任何帮助表示赞赏。
答案 0 :(得分: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();
});