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

AngularJS: контроллер и обслуживание

Я прочитал пару сообщений о правильном использовании объектов angularjs: сервисы, фабрики, контроллеры и директивы.

Моя особая забота - это сравнение контроллера и службы. Ни одна из сообщений не рассказала мне о том, что контроллер может делать то, что не может обслуживать, и наоборот.

Можно ли это указать или это просто вопрос канонического использования angular?

4b9b3361

Ответ 1

Контроллеры обычно используются для привязки к представлению. Контроллеры управляют жизненным циклом просмотра и должны рассматриваться как контроллеры просмотра. Новый контроллер будет создан для каждого экземпляра представления, а это означает, что если вы перейдете от определенного вида, а затем снова заново - или если у вас более одного экземпляра определенного представления, каждый контроллер будет создан каждый раз.

Сервисы обычно используются в качестве бизнес-логики вашего приложения. Службы аналогичны синглтонам в том смысле, что они создаются один раз, и экземпляр поддерживается на протяжении всего жизненного цикла вашего приложения. Это хорошее место для размещения ваших логических функций, которые потребуются многим представлениям или компонентам, а также для хранения глобального кеша, который должен быть доступен во многих областях вашего приложения.

Ответ 2

контроллеры - обязанности: инициализация представления, посредничество взаимодействия между представлением/областью и услугами. Он имеет зависимости от представления и модели, но больше интересуется представлением и делает его работу.

службы - ответственность: предоставляет бизнес-услуги не, зависящие от представления или контроллера. Его основной задачей является предоставление услуг независимо от потребителя (контроллер/просмотр/другие услуги).

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

Ответ 3

В соответствии с документацией AngularJS https://docs.angularjs.org/guide/concepts

Контроллеры относятся к связанной бизнес-логике. Услуги, с другой стороны, связаны с многоразовой бизнес-логикой, независимой от представлений.

Ответ 4

В дополнение к тому, что было сказано выше. Контроллеры могут также придерживаться логики вашего приложения, пока приложение не так велико. Но по мере роста вашего приложения вам потребуется переместить логику для использования сервисов (например, factory). Это позволит легко и легко получить переменные и функции, необходимые для вашего приложения.