Хорошо это или плохо, чтобы предоставлять услуги на каждый угловой компонент 4?
На самом деле, у меня есть два вопроса об угловой практике 4.
- У меня есть служба по имени
RemoteService
, который отвечает за звонки XHR. Я хочу поймать экземпляр компонента, который использует этот сервис, вRemoteService
, Так что, я думаю, лучше предоставлять эту услугу на уровне компонентов. Потому что я не хочу, чтобы все методы службы принимали экземпляр компонента по параметру. Но хорошо это или плохо предоставлять услугу для каждого компонента? Кстати:RemoteService
будет использоваться в сотнях компонентов. - Я пытаюсь следовать стилю руководства по угловым. Где я должен разместить
RemoteService
?. Общий функциональный модуль или основной функциональный модуль? Это похоже на цельExceptionService
а такжеLoggerService
, Но это не одиночный сервис, как я объяснил выше. Это может зависеть от ответа на вопрос 1.
1 ответ
Решение
Таким образом, чтобы ответить на оба ваших вопроса - RemoteService
это определенно хорошая идея Я обычно называю мой ApiService
,
Это хорошая идея по нескольким причинам -
- Все http-вызовы из одного файла позволяют использовать одну конечную точку для ваших внешних запросов. Это более организованно, чем звонки из отдельных сервисов уровня компонента
- Вы имеете больше контроля над звонками. Это означает, что если вам нужно было поместить некоторую логику между вызовом вашего компонента и фактическим вызовом http (пример - проверка аутентификации) - вы не хотите бегать вокруг своего приложения, меняя его везде - вместо этого у вас есть локальная функция, которая переносит HTTP-запрос, и обеспечивает дополнительную логику.
С точки зрения того, где его поместить - руководство по стилю Джона Папы предлагает поместить этот файл в shared
папка: https://johnpapa.net/angular-2-styles/