http $ interceptor $ toState属性

时间:2014-11-26 06:42:54

标签: angularjs angular-ui-router angular-http-interceptors

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

$injector.get('$state').current.name

但我想得的是状态也是如此,我找不到属性

$injector.get('$state').unknown // what is the **toState** property

进一步详细说明,我正在使用离子和我在请求上显示加载指示器,它允许我在一个地方有$ 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保留在一个位置。

0 个答案:

没有答案