AngularJS:为每个端点创建多个工厂?

时间:2013-06-21 10:54:02

标签: angularjs angular-resource

根据一些例子,看来我们可以注入一个工厂,其中包含一个休息服务的端点,如此

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',...............

或者是否有另一种推荐方式?

我真的没有看到它的问题,但它会迫使我创建很多工厂只是为了处理不同的端点。

任何真正适用的帮助或指导

由于

1 个答案:

答案 0 :(得分:100)

这是一个偏好的问题。

但是没有什么能阻止你将所有资源整合到一个工厂内,如:

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