В настоящее время у меня есть httpInterceptor, и я могу получить доступ к текущему имени состояния через:
$injector.get('$state').current.name
Но то, что я хочу получить, это то состояние, в котором оно находится, и я не могу найти свойство
$injector.get('$state').unknown // what is the **toState** property
чтобы уточнить, я использую ionic, и я показываю индикатор загрузки в запросах, и это позволяет мне иметь $ionicLoading в одном месте
.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()
});
Я хочу выборочно изменить текст индикаторов загрузки на основе состояний «в» и «из», поэтому я сохраняю $ionicLoading в одном месте.