私は現在 httpInterceptor を持っており、次の方法で現在の状態名にアクセスできます。
$injector.get('$state').current.name
しかし、私が取得したいのは、それが進んでいる状態でもあり、プロパティが見つかりません
$injector.get('$state').unknown // what is the **toState** property
さらに詳しく説明すると、私は ionic を使用しており、Im はリクエストに読み込みインジケーターを表示しています。
.factory('loaderInterceptor', ['$rootScope', '$injector', function ($rootScope, $injector) {
return {
request: function(config) {
$rootScope.$broadcast('loading:show', $injector.get('$state').current.name);
return config;
},
response: function(response) {
$rootScope.$broadcast('loading:hide');
return response;
}
};
}])
$rootScope.$on('loading:show', function(e, fromState) {
var loadingOptions = {
template: '<i class="icon ion-loading-c"></i>\n<br/>\nloading...',
};
if(fromState === 'login')
{
var loadingOptions = {
template: '<i class="icon ion-loading-c"></i>\n<br/>\nSigning in...',
animation: 'fade-in',
};
}
$ionicLoading.show(loadingOptions)
});
$rootScope.$on('loading:hide', function() {
$ionicLoading.hide()
});
to と from の状態に基づいてローディング インジケーターのテキストを選択的に変更したいので、$ionicLoading を 1 つの場所に保持します。