Angular services
Сервіси в Angular виконують певні специфічні завдання, наприклад, логуваня, отримання та обробку даних і т.д. На відміну від компонентів і директив сервіси не працюють з уявленнями, тобто не працюють з html розміткою. Вони виконують певне і досить вузьке завдання.
Стандартні завдання сервісів:
Надавати дані додатку. Сервіс може сам зберігати дані в пам'яті, або для отримання даних може звертатися до сервера
Сервіс може бути каналом взаємодії між окремими компонентами аплікації
Сервіс може інкапсулювати бізнес-логіку, різні обчислювальні завдання. Також в сервіс часто виносять куски спільного коду, таким чином вирішують проблему повторення коду.
Створеня нового сервісу.
ng g service todo
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class TodoService {
constructor() { }
}
Даний сервіс є автоматично підключений до AppModule, завдяки параметру provideIn: 'root'
Якщо нам потрібно самостійно підключити сервіс в модулю, то сервіси підключаються в providers
// ...
@NgModule({
// ...
providers: [
TodoService
]
})
export class AppModule { }
Після того як ми підключили сервіс в модулі ми можемо ним користуватися в сомпонентах цього модуля. В компоненті сервіс підключається наступним чином
// ...
export class TodoComponent implements OnInit {
constructor(
private todoService: TodoService
) {}
// ...
}
Завдання.
Створити TodoService та використати його в todo компоненті.
ng g service core/services/todo/todo
Перенести todoData з компонента todo-list в сервіс і вже користуючись сервісом отримати TodoData.
Last updated
Was this helpful?