Если вы, как и я, пытаетесь понять, в чем разница между фабриками, сервисами и поставщиками AngularJS. Это потому, что они все одинаковые. Все они служат для помощи контроллеру. Звучит безумно, верно? Зачем нам три разных вещи, которые делают похожие вещи? Что ж, ответ на этот вопрос заключается в том, как они работают.

Заводы:

Фабрики используются для возврата нам объекта. Фабрики создаются с использованием метода .factory. Мы даем ему два параметра, строку, которая будет именем для его вызова, и анонимную функцию. Внутри функции мы можем установить некоторые свойства и методы. Теперь, когда у нас есть наша новая фабрика, все, что осталось сделать, это передать ее в наш контроллер. Как только мы это сделаем, контроллер получит доступ ко всем свойствам и методам объектов.

Услуги:

Сервисы очень похожи на фабрики, за исключением того, что вместо объекта они возвращают функцию-конструктор. Они создаются с использованием метода .service. Параметры, которые он принимает, — это строка в качестве имени и снова функция. Внутри этой функции мы поместим все свойства и методы, которые мы хотим, чтобы эта служба имела. Нам снова придется отдать его контроллеру, и он снова получит все методы и свойства сервиса. Теперь, почему мы можем захотеть использовать это, а не фабрику. Сервисы используются больше, когда мы хотим добавить общий код или функциональность в наши контроллеры, где фабрики мы можем использовать более сложную логику.

Провайдеры:

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

В заключение, мы используем каждый из них по мере возникновения проблем. В некоторых случаях фабрики — это все, что нам нужно. Они наиболее настраиваемые, чтобы быть конкретными. Где услуги начинаются с более общего. И, наконец, к самым общим провайдерам. У всех есть свои особенности использования, и вам просто нужно выяснить, какой из них соответствует вашим потребностям в данный момент.