Подтвердить что ты не робот

AngularJS: Создание нескольких заводов для каждой конечной точки?

следуя некоторым примерам, кажется, что мы можем ввести factory, который будет содержать конечную точку для службы отдыха, например,

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

Это выглядит великолепно, но представьте, что у меня есть другие конечные точки, то есть /users/: id и /groups/: id, так как вы можете себе представить, что количество разных конечных точек будет увеличиваться.

Таким образом, хорошая практика состоит в том, что для каждой конечной точки есть другой factory, поэтому...

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

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

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

Или есть другой рекомендуемый способ?

Я действительно не вижу в этом проблемы, но это заставит меня создать много фабрик только для работы с разными конечными точками.

Любая помощь или руководство действительно оценены

Спасибо

4b9b3361

Ответ 1

Это вопрос предпочтения.

Но ничто не мешает вам консолидировать все ваши ресурсы внутри одного factory, как в:

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

Ответ 2

Если у вас есть все ресурсы в одном factory, как вы создаете экземпляр класса?

Обычно, с единственным ресурсом, вы должны: $scope.api = new Api();

который, похоже, не работает... зависает... Кроме того, я действительно хочу: $scope.users = new Api.Users();...