web-dev-qa-db-ja.com

AngularJS:すべてのエンドポイントに複数のファクトリを作成しますか?

いくつかの例に従って、次のような休息サービスのエンドポイントを含むファクトリを注入できるようです。

services.factory('Recipe', ['$resource',
     function($resource) {
        return $resource('/recipes/:id', {id: '@id'});
}]);

これは素晴らしいように見えますが、他のエンドポイント、つまり/ users /:idと/ groups /:idがあることを想像してください。異なるエンドポイントの数が増えると想像できます。

したがって、エンドポイントごとに異なるファクトリーを作成して、..

services.factory('Recipe', ['$resource',............

services.factory('Users', ['$resource',.............

services.factory('Groups', ['$resource',...............

または、別の推奨される方法はありますか?

本当に問題はありませんが、異なるエンドポイントを処理するためだけに多くのファクトリーを作成せざるを得ません。

本当に助かりました

ありがとう

45
Martin

それは好みの問題です。

ただし、次のように、すべてのリソースを1つの工場内に統合することを妨げるものはありません。

services.factory('Api', ['$resource',
 function($resource) {
  return {
    Recipe: $resource('/recipes/:id', {id: '@id'}),
    Users:  $resource('/users/:id', {id: '@id'}),
    Group:  $resource('/groups/:id', {id: '@id'})
  };
}]);

function myCtrl($scope, Api){
  $scope.recipe = Api.Recipe.get({id: 1});
  $scope.users = Api.Users.query();
  ...
}
100
Stewie