Angularjs toState的http$interceptor$状态属性

Angularjs toState的http$interceptor$状态属性,angularjs,angular-ui-router,angular-http-interceptors,Angularjs,Angular Ui Router,Angular Http Interceptors,我目前有一个httpInterceptor,我可以通过以下方式访问当前状态名称: $injector.get('$state').current.name 但我想要的是它的状态,我也找不到它的财产 $injector.get('$state').unknown // what is the **toState** property 为了进一步说明,我使用ionic和Im在请求上显示一个加载指示器,它允许我在一个点上加载$ionicLoading .factory('loaderInterce

我目前有一个httpInterceptor,我可以通过以下方式访问当前状态名称:

$injector.get('$state').current.name
但我想要的是它的状态,我也找不到它的财产

$injector.get('$state').unknown // what is the **toState** property
为了进一步说明,我使用ionic和Im在请求上显示一个加载指示器,它允许我在一个点上加载$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()
});
.factory('loaderInterceptor',['$rootScope','$injector',函数($rootScope,$injector){
返回{
请求:函数(配置){
$rootScope.$broadcast('loading:show',$injector.get('$state').current.name);
返回配置;
},
响应:功能(响应){
$rootScope.$broadcast('loading:hide');
返回响应;
}
};
}]) 
$rootScope.$on('load:show',函数(e,fromState){
变量加载选项={
模板:'\n
\n正在加载…', }; 如果(fromState==='login') { 变量加载选项={ 模板:'\n
\n正在登录…', 动画:“淡入”, }; } $ionicLoading.show(加载选项) }); $rootScope.$on('loading:hide',function()){ $ionicLoading.hide() });

我想根据to和from状态有选择地更改加载指示器文本,以便将$ionicLoading保留在一个位置。

您应该观察(收听)
$stateChangeStart
。检查此处的一些链接为什么要根据状态更改
$http
的行为?我觉得这不是个好主意。我宁愿围绕
$http
编写函数,在每个状态的控制器中显式地使用不同的行为。我实际上使用它来显示和隐藏rest请求上的加载指示器,方法是在$rootScope上广播一个事件来侦听。$broadcast('loading:show',data);