Javascript 如何将NGCookie注入提供程序()

Javascript 如何将NGCookie注入提供程序(),javascript,angularjs,Javascript,Angularjs,我一直在尝试将Angular JS ngCookie模块和$Cookie服务注入Angular提供者,但没有成功。有人能解释一下成功的原因吗 当我将ngCookies注入提供程序时 angular.module('loginService', []) .provider('loginService', function () { var userToken = localStorage.getItem('userToken'), errorState = 'app.err

我一直在尝试将Angular JS ngCookie模块和$Cookie服务注入Angular提供者,但没有成功。有人能解释一下成功的原因吗

当我将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作为集Cookie头返回。我想获取ss id,但似乎无法从响应头中检索它,所以我想我应该从cookie中获取它


不过,我对更好的选择持开放态度…

您只能将其他提供者注入到提供者中。只能在提供程序的公用函数或配置块中插入服务。

不能将工厂和服务注入提供程序。只能在$get函数中插入$cookies