私は以下のような工場で3つのリソースを持っています。リソースは同じルートパスを持ちますが、コントローラーとパラメーターの呼び出しだけが異なります。それぞれのリソースでGetのみが使用されます。リソースを1つにまとめ、3つの異なるGetに応答する方法があるのだろうかと思います。おそらく、$ resourceの3番目のparamオブジェクト(アクション)を以下の仕様で構成していたかもしれませんが、どういうわけかはっきりしていません。ありがとう。
{
getFacility: {method:'GET', params: { id: '@id' }, url: api.fsr + 'facility/:id'},
getService: {method:'GET', params:{ id: '@id' }, url: api.fsr + 'service/:id'},
getRole: {method:'GET', params:{ id: '@id' }, url: api.fsr + 'role/:id'}
}
(function() {
'use strict';
var moduleName = 'fsrFactoryModule';
var factoryName = 'fsrFactory';
var requiredModules = ["ngResource", "configModule"];
var dependencyInjection = ['$resource', 'api', internalFunc];
angular.module(moduleName, requiredModules)
.factory(factoryName, dependencyInjection);
function internalFunc($resource, api) {
function facility() {
return $resource(api.fsr + 'facility/:id',{ id: '@id' });
}
function service() {
return $resource(api.fsr + 'Service/:id',{ id: '@id' });
}
function role() {
return $resource(api.fsr + 'FSR/:id', { id: '@id' });
}
return {
//usage: fsrFactory.facility()
facility /*public method*/: facility /*internal method above*/,
//usage: fsrFactory.GetService()
service /*public method*/: service /*internal method above*/,
//usage: fsrFactory.GetRole()
role /*public method*/: role /*internal method above*/,
}
}
})();