Transcript
Page 1: сервисы в Angular js

{Сервисы в AngularJS

Краткое введение

Page 2: сервисы в Angular js

Сервис (service)

Page 3: сервисы в Angular js

Сервис это один из фундаментальных типов данных в AngularJS, на ряду с контроллерами, директивами, фабриками;

Что такое сервис?

Page 4: сервисы в Angular js

Как создать сервис?Чтобы создать сервис достаточно объявить его, используя метод «service» нашегоприложения.

Page 5: сервисы в Angular js

Альтернативный синтаксисМожно использовать альтернативный синтаксис. Он также применим к другим типам данных в AngularJS, например, контроллерам.

Page 6: сервисы в Angular js

Главное о сервисахОсновные моменты как работает сервис:

1. Все сервисы – синглтоны2. Сервис инициализируется лишь тогда, когда он в первые

внедряется в структурный элемент AngularJS, в качестве зависимости;

3. При вызове конструктора сервиса, конструктор должен вернуть объект (в отличие от фабрики, где можно вернуть что угодно).

Page 7: сервисы в Angular js

Зачем нужны сервисы?Основные задачи сервиса:

1. Сервис используется в качестве модели. Эта модель доступна всем элементам приложения, потому что сервис — это синглтон;

2. Сервис может предоставлять API, для работы с конкретными задачами (например, с моделью в этом сервисе, или AJAX). Этот API можно внедрить и использовать в контроллерах;

3. Сервис может использоваться для связки («общения») контроллеров между собой;

Page 8: сервисы в Angular js

Use case #1Вывод данных модели во вьюшке:

http://plnkr.co/edit/lFehxtraU4PDlbZNgcYK?p=preview

Page 9: сервисы в Angular js

Use case #2Использование сервисов в качестве API:

http://plnkr.co/edit/8r7wZtGouOUTLDfKFiHC?p=preview

Page 10: сервисы в Angular js

Фабрика (factory)

Page 11: сервисы в Angular js

Главное о фабрикахОсновные моменты как работает фабрика:

1. Фабрика может вернуть любой тип данных (строку, число, объект, и другие);

2. Фабрика является синглтоном.

Важно: мемоизируется любое значение, которое возвращается при первой инициализации конструктора, и затем, при последующем внедрении фабрики в качестве зависимости внедряется уже мемоизированное значение, а не результат работы конструктора.

Page 12: сервисы в Angular js

Когда нужны фабрики?Фабрики нужны в случаях, когда:

1. Нужно вернуть какое-то значение или конструктор, но не экземпляр какого-то класса. В остальных случаях можно создать сервис;

2. Если вам нужно получить обычную функцию.