1

所以我有以下控制器,我在其中注入一个常量 APIKEY。

myApp.controller('JobsCtrl', ['$scope', 'Jobs', 'APIKEY', function($scope, Jobs, apiKey) {
  var promise = Jobs.query().$promise;
  // do more awesome programming
}

我想将 apiKey 传递给以下服务,但我一生都无法弄清楚如何去做。

myApp.factory('Jobs', ['$resource', function ($resource) {
  return $resource('/someurl/:id', {id:'@id'}, {
    query: { method: 'GET', headers: {'Authorization': apiKey} }
  });
}]);

谢谢!

4

2 回答 2

7

将您的 Jobs $resource 包装在另一个函数中:

myApp.factory('Jobs', ['$resource', function ($resource) {
  return function(apiKey){
    return $resource('/someurl/:id', {id:'@id'}, {
      query: { method: 'GET', headers: {'Authorization': apiKey} }
    });
  }
}]);

myApp.controller('JobsCtrl', ['$scope', 'Jobs', 'APIKEY', function($scope, Jobs, apiKey) {
  var promise = Jobs('MY_KEY').query().$promise;
  // do more awesome programming
}
于 2013-10-30T22:08:53.617 回答
2

您还可以查看提供服务 API

$provide.constant('APIKEY', 'theHash');

然后将其注入到控制器和服务中(例如,当您创建服务并将依赖项注入其中时)。

于 2013-10-30T22:28:56.120 回答