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

Mar*_*tin 45 angularjs angular-resource

根据一些例子,看起来我们可以注入一个工厂,它包含一个像这样的休息服务的端点

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

这看起来很棒,但想象我有其他端点即/ users /:id和/ groups /:id,因为您可以想象不同端点的数量将会增加.

因此,优良作法是为每个端点设置不同的工厂,以便...

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

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

services.factory('Groups', ['$resource',...............
Run Code Online (Sandbox Code Playgroud)

或者还有另一种推荐方式吗?

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

任何帮助或指导真正适用

谢谢

Ste*_*wie 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();
  ...
}
Run Code Online (Sandbox Code Playgroud)

  • 啊! 这是有道理的,这种方法会优于另一种吗?我不想破坏一个责任原则,但我认为这些责任是一样的吗? (2认同)