Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Інʼєкція Сервісу в Компонент | Services and Dependency Injection in Angular
Вступ до Angular

bookІнʼєкція Сервісу в Компонент

Ви створили TaskService, який відповідає за зберігання та керування списком завдань. Однак сам по собі сервіс не взаємодіє з інтерфейсом користувача. Щоб отримати дані із сервісу в шаблон компонента, необхідно впровадити сервіс у відповідний компонент.

Далі ви дізнаєтеся, як Angular автоматично допомагає підключати сервіси до компонентів за допомогою інʼєкції залежностей (DI) та як сервіс працює всередині компонента.

Що таке інʼєкція залежностей?

Note
Визначення

Інʼєкція залежностей (DI) — це шаблон проєктування, за якого Angular автоматично впроваджує необхідні залежності (наприклад, сервіси) у конструктор компонента.

Завдяки DI компоненти не створюють екземпляри сервісів самостійно — вони просто отримують вже створений екземпляр. Angular забезпечує доставку необхідних об'єктів тим, хто їх потребує.

Це працює тому, що сервіс декоровано так:

@Injectable({
  providedIn: 'root'
})

Цей декоратор повідомляє Angular створити єдиний екземпляр (сінглтон) сервісу для всього додатку та зробити його доступним для DI.

Інʼєкція сервісу в компонент

Тепер введемо TaskService у TaskListComponent, щоб він міг отримувати список завдань і взаємодіяти з ним.

Ось як виглядає код компонента:

task-list.ts

task-list.ts

copy

Ми імпортуємо TaskService, інтерфейс Task, а також інші компоненти та модулі, необхідні для шаблону.

У конструкторі компонента додаємо сервіс за допомогою інжекції залежностей:

task-list.ts

task-list.ts

copy

Ви зберігаєте його як приватне поле для використання в методах компонента. Одразу після створення компонента (всередині конструктора) отримуємо список завдань. Цей список потім використовується в HTML-шаблоні.

Методи deleteTask та toggleStatus викликають функції сервісу для видалення завдання або зміни його статусу, а потім оновлюють локальний масив tasks, щоб інтерфейс користувача відображав зміни.

Такий підхід робить компонент простим: він не знає, як зберігаються чи обробляються дані — він лише звертається до сервісу для їх оновлення. Це розділяє відповідальність: компоненти відповідають за відображення, а сервіси — за дані.

1. Що таке впровадження залежностей (DI) в Angular?

2. Чому ми оновлюємо this.tasks після виклику deleteTask або toggleStatus?

question mark

Що таке впровадження залежностей (DI) в Angular?

Select the correct answer

question mark

Чому ми оновлюємо this.tasks після виклику deleteTask або toggleStatus?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.13

bookІнʼєкція Сервісу в Компонент

Свайпніть щоб показати меню

Ви створили TaskService, який відповідає за зберігання та керування списком завдань. Однак сам по собі сервіс не взаємодіє з інтерфейсом користувача. Щоб отримати дані із сервісу в шаблон компонента, необхідно впровадити сервіс у відповідний компонент.

Далі ви дізнаєтеся, як Angular автоматично допомагає підключати сервіси до компонентів за допомогою інʼєкції залежностей (DI) та як сервіс працює всередині компонента.

Що таке інʼєкція залежностей?

Note
Визначення

Інʼєкція залежностей (DI) — це шаблон проєктування, за якого Angular автоматично впроваджує необхідні залежності (наприклад, сервіси) у конструктор компонента.

Завдяки DI компоненти не створюють екземпляри сервісів самостійно — вони просто отримують вже створений екземпляр. Angular забезпечує доставку необхідних об'єктів тим, хто їх потребує.

Це працює тому, що сервіс декоровано так:

@Injectable({
  providedIn: 'root'
})

Цей декоратор повідомляє Angular створити єдиний екземпляр (сінглтон) сервісу для всього додатку та зробити його доступним для DI.

Інʼєкція сервісу в компонент

Тепер введемо TaskService у TaskListComponent, щоб він міг отримувати список завдань і взаємодіяти з ним.

Ось як виглядає код компонента:

task-list.ts

task-list.ts

copy

Ми імпортуємо TaskService, інтерфейс Task, а також інші компоненти та модулі, необхідні для шаблону.

У конструкторі компонента додаємо сервіс за допомогою інжекції залежностей:

task-list.ts

task-list.ts

copy

Ви зберігаєте його як приватне поле для використання в методах компонента. Одразу після створення компонента (всередині конструктора) отримуємо список завдань. Цей список потім використовується в HTML-шаблоні.

Методи deleteTask та toggleStatus викликають функції сервісу для видалення завдання або зміни його статусу, а потім оновлюють локальний масив tasks, щоб інтерфейс користувача відображав зміни.

Такий підхід робить компонент простим: він не знає, як зберігаються чи обробляються дані — він лише звертається до сервісу для їх оновлення. Це розділяє відповідальність: компоненти відповідають за відображення, а сервіси — за дані.

1. Що таке впровадження залежностей (DI) в Angular?

2. Чому ми оновлюємо this.tasks після виклику deleteTask або toggleStatus?

question mark

Що таке впровадження залежностей (DI) в Angular?

Select the correct answer

question mark

Чому ми оновлюємо this.tasks після виклику deleteTask або toggleStatus?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3
some-alt