0

$ ionicLoadingディレクティブでこの奇妙な問題が発生しています。私はすべての状態の変更にローダーを表示しようとしています。

ページのロードオンまたはstateChangeStart上
.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'); 
    }); 
}]); 

に、$ ionicLoading.showは()が呼び出さなっているが、それはエラーとして約束を返して(エラー:キャンセル、何かが破壊されるが、印刷きている)&ので、ローダーは表示されません。

ここで$stateChangeSuccess$rootScope.$broadcast('loading:show');イベントを呼び出すと、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

約束による返品のエラー: 'cancelled' – amarmishra

関連する問題