Додавання Функціональності До Нашого Застосунку
На цьому етапі наш застосунок вже вміє відображати список завдань і показувати повідомлення, коли їх немає. Однак користувачі все ще не мають можливості додавати нові завдання.
Ми додамо можливість створювати нове завдання за допомогою зручної кнопки та модальної форми.
Ми реалізуємо:
-
Стильну кнопку
Add; -
Модальне вікно з полем введення для назви завдання;
-
Логіку додавання завдання до списку у
TaskService; -
Автоматичну генерацію унікального ідентифікатора.
Початок роботи
Перш за все, необхідно розширити наш TaskService, щоб він міг створювати та зберігати нові завдання. Сервіс повинен не лише зберігати завдання, а й обробляти всю бізнес-логіку, пов’язану з ними.
Ми створимо метод addTask у сервісі. Генерація унікального ідентифікатора, створення об’єкта завдання та його збереження у списку відбуватимуться всередині сервісу. Метод отримуватиме лише title, який буде передаватися з TaskListComponent.
task-service.ts
Метод addTask() приймає лише назву завдання та створює об'єкт Task внутрішньо. Спочатку він знаходить максимальний ідентифікатор серед існуючих завдань, потім додає до нього 1 для генерації унікального ідентифікатора. Нове завдання завжди встановлюється як невиконане (completed: false) і одразу додається до масиву tasks.
Такий підхід усуває зайву логіку з компонента та робить сервіс самодостатнім і багаторазово використовуваним.
Оновлення TaskListComponent
Тепер, коли вся логіка створення нового завдання перенесена до сервісу, компонент відповідає лише за отримання введення користувача, передачу назви завдання до сервісу та оновлення локального списку завдань. Такий підхід спрощує компонент і централізує бізнес-логіку у TaskService.
У компоненті буде додано дві змінні:
-
showAddTask— прапорець, що керує відображенням модального вікна для додавання завдання; -
newTaskTitle— рядок для збереження введеної користувачем назви завдання.
Також буде реалізовано метод addTask(), який:
-
Перевіряє, що введений рядок не порожній;
-
Передає назву завдання до методу сервісу
addTask(title: string); -
Оновлює локальний список завдань;
-
Очищає поле введення та закриває модальне вікно.
task-component.ts
Метод addTask() тепер максимально спрощений: він лише обробляє взаємодію з користувачем і делегує всю бізнес-логіку сервісу. Це робить код легшим для підтримки та тестування.
Також переконайтеся, що у вашому модулі імпортовано FormsModule, оскільки він необхідний для двостороннього зв'язування даних із newTaskTitle.
Додавання кнопки та модального вікна
Тепер додамо частину інтерфейсу: кнопку "Додати" та HTML-розмітку для модального вікна, яке містить поле введення та кнопки.
task-component.html
component-style.css
Коли користувач натискає кнопку Add, змінна showAddTask стає true, і з'являється модальне вікно. Поле введення пов'язане зі змінною newTaskTitle через [(ngModel)], а дії кнопок або зберігають завдання, або закривають модальне вікно без змін.
Користувачі зможуть зручно додавати завдання через модальну форму. Нове завдання одразу з'являється у списку без необхідності оновлення сторінки.
Тепер ми реалізували інтерактивність, яка робить наш застосунок повнофункціональним і зручним для щоденного використання.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Додавання Функціональності До Нашого Застосунку
Свайпніть щоб показати меню
На цьому етапі наш застосунок вже вміє відображати список завдань і показувати повідомлення, коли їх немає. Однак користувачі все ще не мають можливості додавати нові завдання.
Ми додамо можливість створювати нове завдання за допомогою зручної кнопки та модальної форми.
Ми реалізуємо:
-
Стильну кнопку
Add; -
Модальне вікно з полем введення для назви завдання;
-
Логіку додавання завдання до списку у
TaskService; -
Автоматичну генерацію унікального ідентифікатора.
Початок роботи
Перш за все, необхідно розширити наш TaskService, щоб він міг створювати та зберігати нові завдання. Сервіс повинен не лише зберігати завдання, а й обробляти всю бізнес-логіку, пов’язану з ними.
Ми створимо метод addTask у сервісі. Генерація унікального ідентифікатора, створення об’єкта завдання та його збереження у списку відбуватимуться всередині сервісу. Метод отримуватиме лише title, який буде передаватися з TaskListComponent.
task-service.ts
Метод addTask() приймає лише назву завдання та створює об'єкт Task внутрішньо. Спочатку він знаходить максимальний ідентифікатор серед існуючих завдань, потім додає до нього 1 для генерації унікального ідентифікатора. Нове завдання завжди встановлюється як невиконане (completed: false) і одразу додається до масиву tasks.
Такий підхід усуває зайву логіку з компонента та робить сервіс самодостатнім і багаторазово використовуваним.
Оновлення TaskListComponent
Тепер, коли вся логіка створення нового завдання перенесена до сервісу, компонент відповідає лише за отримання введення користувача, передачу назви завдання до сервісу та оновлення локального списку завдань. Такий підхід спрощує компонент і централізує бізнес-логіку у TaskService.
У компоненті буде додано дві змінні:
-
showAddTask— прапорець, що керує відображенням модального вікна для додавання завдання; -
newTaskTitle— рядок для збереження введеної користувачем назви завдання.
Також буде реалізовано метод addTask(), який:
-
Перевіряє, що введений рядок не порожній;
-
Передає назву завдання до методу сервісу
addTask(title: string); -
Оновлює локальний список завдань;
-
Очищає поле введення та закриває модальне вікно.
task-component.ts
Метод addTask() тепер максимально спрощений: він лише обробляє взаємодію з користувачем і делегує всю бізнес-логіку сервісу. Це робить код легшим для підтримки та тестування.
Також переконайтеся, що у вашому модулі імпортовано FormsModule, оскільки він необхідний для двостороннього зв'язування даних із newTaskTitle.
Додавання кнопки та модального вікна
Тепер додамо частину інтерфейсу: кнопку "Додати" та HTML-розмітку для модального вікна, яке містить поле введення та кнопки.
task-component.html
component-style.css
Коли користувач натискає кнопку Add, змінна showAddTask стає true, і з'являється модальне вікно. Поле введення пов'язане зі змінною newTaskTitle через [(ngModel)], а дії кнопок або зберігають завдання, або закривають модальне вікно без змін.
Користувачі зможуть зручно додавати завдання через модальну форму. Нове завдання одразу з'являється у списку без необхідності оновлення сторінки.
Тепер ми реалізували інтерактивність, яка робить наш застосунок повнофункціональним і зручним для щоденного використання.
Дякуємо за ваш відгук!