2016-06-23 3 views
0

私は以下のような工場で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*/, 
 
    } 
 
    } 
 
})();

答えて

0

configオブジェクトを作成し、リソースを返すために一つの機能を使用することはできコントローラに続いて

var resources ={ 
    facility: 'facility', 
    service :'Service', 
    fsr: 'FSR' 

} 

function myResources(name, id){ 
    return $resource(api.fsr + resources[name] + '/:id',{ id: '@id' }).get({id:id}); 

} 

return { 
    myResources: myResources 
} 

が必要:

0

以下のようにアクションパラメータを使用したいと思いますが、これが正しいアプローチであるかどうかはわかりません。

{ 
 
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'} 
 
}

関連する問題