6. Главное о сервисах
Основные моменты как работает сервис:
1. Все сервисы – синглтоны
2. Сервис инициализируется лишь тогда, когда он в первые
внедряется в структурный элемент AngularJS, в качестве
зависимости;
3. При вызове конструктора сервиса, конструктор должен
вернуть объект (в отличие от фабрики, где можно вернуть
что угодно).
7. Зачем нужны сервисы?
Основные задачи сервиса:
1. Сервис используется в качестве модели. Эта модель
доступна всем элементам приложения, потому что сервис
— это синглтон;
2. Сервис может предоставлять API, для работы с
конкретными задачами (например, с моделью в этом
сервисе, или AJAX). Этот API можно внедрить и
использовать в контроллерах;
3. Сервис может использоваться для связки («общения»)
контроллеров между собой;
8. Use case #1
Вывод данных модели во вьюшке:
http://plnkr.co/edit/lFehxtraU4PDlbZNgcYK?p=preview
9. Use case #2
Использование сервисов в качестве API:
http://plnkr.co/edit/8r7wZtGouOUTLDfKFiHC?p=preview
11. Главное о фабриках
Основные моменты как работает фабрика:
1. Фабрика может вернуть любой тип данных (строку, число,
объект, и другие);
2. Фабрика является синглтоном.
Важно: мемоизируется любое значение, которое
возвращается при первой инициализации конструктора, и
затем, при последующем внедрении фабрики в качестве
зависимости внедряется уже мемоизированное значение, а
не результат работы конструктора.
12. Когда нужны фабрики?
Фабрики нужны в случаях, когда:
1. Нужно вернуть какое-то значение или конструктор, но не
экземпляр какого-то класса. В остальных случаях можно
создать сервис;
2. Если вам нужно получить обычную функцию.