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',...............
Или есть другой рекомендуемый способ?
Я действительно не вижу в этом проблемы, но это заставит меня создать много фабрик только для работы с разными конечными точками.
Любая помощь или руководство действительно оценены
Спасибо
Ответы
Ответ 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();
...