AngularJS: Creating multiple factories for every endpoint?

扶醉桌前 提交于 2019-11-26 23:54:35

问题


following some examples, it appears that we can inject a factory which would contain an endpoint for a rest service like so

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

This looks great, but imagine I have other endpoints i.e. /users/:id, and /groups/:id, as you can imagine the number of different endpoints are going to increase.

So it is good practice to have a different factory for each endpoint so having ..

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

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

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

Or is there another recommended way ?

I really don't see an issue with it but its going to force me to create a lot of factories just for dealing with the different endpoints.

Any help or guidance really apprecaited

Thanks


回答1:


It's a matter of preference.

But nothing prevents you from consolidating all your resources inside one factory as in:

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();
  ...
}


来源:https://stackoverflow.com/questions/17233481/angularjs-creating-multiple-factories-for-every-endpoint

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!