2013-10-30 135 views
1

所以我有以下控制器,我注入一个常量,APIKEY。如何将Angular.js控制器中的参数传递给资源?

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} } 
    }); 
}]); 

谢谢!

+0

将它作为依赖关系注入,就像你使用'$ resource'一样# – charlietfl

回答

7

包装你乔布斯$资源另一个函数内部:

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 
} 
+0

Worked great !!谢谢。 –

+0

@Stewie但肯定有人可以查看网页上的源代码并查看源文件中的APIKey?然后使用API​​Key访问在OP问题中相当明显的API端点 – twigg

2

您还可以看看provide service API

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

然后将其注入控制器和服务(例如,创建服务并向其中注入依赖关系时)。

+1

,他已经注册了apiKey并且已经在使用它的依赖注入 – charlietfl

相关问题