如何将ngCookies注入provider()

时间:2014-02-26 15:02:22

标签: javascript angularjs

我一直试图将Angular JS ngCookie模块和$ cookies服务注入Angular Provider,但没有成功。有人可以解释一下成功吗?

当我将ngCookies注入提供者

angular.module('loginService', [])
.provider('loginService', function () {
    var userToken = localStorage.getItem('userToken'),
        errorState = 'app.error',
        logoutState = 'app.home';

    this.$get = function ($rootScope, $http, $q, $state) {

        /**
         * Low-level, private functions.
         */
        var setHeaders = function (token) {
            if (!token) {
                delete $http.defaults.headers.common['X-Token'];
                return;
            }
            $http.defaults.headers.common['X-Token'] = token.toString();
        };
...
});
像这样:

angular.module('loginService', ['ngCookies'])
.provider('loginService', ['$cookies', function ($cookies) {
    var userToken = localStorage.getItem('userToken'),
        errorState = 'app.error',
        logoutState = 'app.home';

我收到错误:

Unknown provider: $cookies

我怀疑我不能向服务提供商注入服务?我的问题是我正在调用一个Web服务,它将会话ID作为Set-Cookie标头返回。我想抓住ss-id但似乎无法从响应头中检索它,所以我以为我会从cookie中获取它。

我愿意接受更好的选择......

1 个答案:

答案 0 :(得分:0)

您只能将其他提供商注入提供商。只能在提供者的公共函数或配置块中注入服务。