AngularJS — как правильно организовать запросы в разных контроллерах и директивах?

Вопрос по правильной организации ajax-запросов. Ситуация:
Есть MainCtrl, главный контроллер на уровне тега html - существующий на каждой странице сайта.
Есть CatalogCtrl, контроллер в каталоге товаров в магазине.

Для MainCtrl, в ng-init, выполняется запрос на получение информации о пользователе (имя, товары в корзине, гость/авторизованный)
Для CatalogCtrl, в ng-init, выполняется запрос на получение фильтров каталога и прочей доп.инфы, затем на основе фильтров идёт запрос на получение товаров

Вопрос - правильно ли так?) Запросы отправляются не через сервисы, а в $scope.loadItems = function(){ $http() /*... */ } и тому подобных вещах. Как правильно организовывать запросы на получение информации в разных контроллерах?
  • Вопрос задан
  • 2450 просмотров
Решения вопроса 1
kompi
@kompi
nullstack devoops
MainCtrl переместить в сервис, так как по сути информация внутри общая и должна быть доступна для разных контроллеров.
Какие-то доп. данные можно инжектить через подключение constant/value для индивидуальных страниц, либо напрямую инжектить в сервис через injector.
Все запросы желательно перенести в сервисы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
нет. это не правильно. как минимум инджектить сервис $http в контроллеры это уже сомнительное решение а то что делаете вы это совсем плохо. У вас есть метод run модуля, у вас есть контроллеры... зачем это выносить в темплейты? Это не их зона ответственности.

ng-init задумывался как хелпер для ngRepeat, использовать его для чего-то другого не рекомендуется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
27 нояб. 2024, в 19:08
1500 руб./в час
27 нояб. 2024, в 18:19
2000 руб./за проект
27 нояб. 2024, в 17:41
2000 руб./за проект