是否可以从angularjs中的服务访问$ cookieStore?

时间:2014-03-11 16:20:01

标签: javascript angularjs

我正在尝试从像这样的服务中访问$ cookieStore($cookieStore.get("username")):

var angServices = angular.module('angServices', ['ngResource', 'ngCookies']);
angServices.factory('rsrUser', [ '$resource',
  function($resource, $cookieStore){
    var req = "/login"
    var timestamp = getMicrotime(true).toString();
    var username = $cookieStore.get("username");
    return $resource(baseURL + req, {}, {
      logIn: {method:'POST',
              isArray:false,
              headers:{
                  'X-MICROTIME': timestamp,
                  'X-USERNAME': username,
                  'X-HASH': getHMAC(timestamp, req)
                }
            }
    });
  }]);

但这会返回TypeError: Cannot call method 'get' of undefined

我做错了什么或有更好的原因来实现这个目标?

2 个答案:

答案 0 :(得分:5)

您正在使用带注释的注入,但没有为cookie商店提供注释。

var angServices = angular.module('angServices', ['ngResource', 'ngCookies']);

// Add $cookieStore to the array,             here --\
angServices.factory('rsrUser', [ '$resource', '$cookieStore'

  function($resource, $cookieStore){
    // the same
  }
}]);

答案 1 :(得分:1)

工厂的参数与您的方法签名不符。您需要添加' $ cookieStore'参数列表或第二个参数将是未定义的

angServices.factory('rsrUser', [ '$resource', '$cookieStore',