将$ state对象注入工厂对象导致错误

时间:2014-06-04 16:21:50

标签: angularjs

当我向我的工厂注入$ state服务时,Angular会返回错误。错误并没有多说。但是,当我删除$ state时,错误消失了。发生了什么事?

angular.module('app', ['ui.router'])
.factory('AuthInterceptor',  function ($window, $q, $state) {
    return {

        request: function (config) {
            if ($window.sessionStorage.getItem('token')) {
                config.headers['x-access-token'] = $window.sessionStorage.getItem('token');
            }
            return config || $q.when(config);
        },

        response: function (response) {
            return response || $q.when(response);
        },

        responseError: function (response) {
            if (response['status'] >= 400) {
                console.log("Not Authorized.kindly login first");
                // $state.transitionTo('login');   
            }
            return response || $q.when(err);
        }
    };
} ])

1 个答案:

答案 0 :(得分:0)

参数在您的工厂声明中不匹配,因此$state未注入。

.factory('AuthInterceptor', ['$window', '$q', function ($window, $q, $state) {

应该是

.factory('AuthInterceptor', ['$window', '$q','state', function ($window, $q, $state) {