Створення Користувацького Пайпа в Angular
Іноді вбудованих пайпів Angular недостатньо. Може виникнути потреба у специфічному перетворенні, яке необхідне саме для вашого застосунку. У такому випадку можна створити власний кастомний пайп.
Наприклад, у вас є список завдань, і кожне завдання може бути виконаним або невиконаним. Щоб зробити виконані завдання більш помітними, потрібно автоматично додавати емодзі ✅ до їхніх заголовків. Замість того, щоб прописувати цю логіку у кожному шаблоні, можна створити для цього окремий пайп.
Як створити власний пайп
Щоб згенерувати кастомний пайп в Angular, скористайтеся наступною командою CLI. Назвемо його formatTitle, оскільки його завдання — форматувати заголовок завдання залежно від статусу виконання:
Ця команда створить два файли:
-
format-title.pipe.ts— логіка пайпа; -
format-title.pipe.spec.ts— файл модульних тестів (можна видалити, якщо тестування зараз не потрібне).
Коли Angular створює пайп, він виглядає приблизно так:
pipe.ts
Ось що робить цей код:
-
Клас
FormatTitlePipeреалізує інтерфейсPipeTransform, що гарантує наявність методуtransformу пайпі; -
Метод
transformприймає значення (вхідні дані) та необов'язкові аргументи й повертає перетворений результат. На цьому етапі він просто повертає вхідне значення без змін; -
Назва пайпа (
formatTitle) визначається у декораторі@Pipe— саме цю назву ви будете використовувати в шаблоні.
Зараз пайп існує, але ще не виконує жодної логіки. Далі додамо необхідну функціональність.
Реалізація користувацького пайпу
Необхідно додати емодзі ✅ до заголовка залежно від статусу виконання завдання (task.completed). Оновіть пайп, щоб застосувати нашу користувацьку логіку форматування:
pipe.ts
Метод transform приймає два аргументи:
-
value— заголовок завдання; -
completed— булевий параметр, що вказує, чи виконано завдання.
Якщо завдання виконано (true), до кінця заголовка додається емодзі ✅. В іншому випадку повертається незмінений заголовок.
Використання пайпа в шаблоні
Щоб використати пайп у вашому Angular-шаблоні, застосуйте його за допомогою символу пайпа |:
template.html
Що тут відбувається:
-
task.title— значення, яке передається в пайп; -
formatTitle:task.completedзастосовує пайп і передає прапорецьcompleted; -
Заголовок міститиме емодзі ✅ або ні, залежно від статусу завдання.
Використання пайпів таким чином допомагає зберігати шаблони чистими й читабельними, а також переносить логіку форматування у багаторазово використовуваний і тестований код.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you show me the code for the custom pipe implementation?
How do I use this custom pipe in my Angular template?
What are some other use cases for custom pipes in Angular?
Awesome!
Completion rate improved to 3.13
Створення Користувацького Пайпа в Angular
Свайпніть щоб показати меню
Іноді вбудованих пайпів Angular недостатньо. Може виникнути потреба у специфічному перетворенні, яке необхідне саме для вашого застосунку. У такому випадку можна створити власний кастомний пайп.
Наприклад, у вас є список завдань, і кожне завдання може бути виконаним або невиконаним. Щоб зробити виконані завдання більш помітними, потрібно автоматично додавати емодзі ✅ до їхніх заголовків. Замість того, щоб прописувати цю логіку у кожному шаблоні, можна створити для цього окремий пайп.
Як створити власний пайп
Щоб згенерувати кастомний пайп в Angular, скористайтеся наступною командою CLI. Назвемо його formatTitle, оскільки його завдання — форматувати заголовок завдання залежно від статусу виконання:
Ця команда створить два файли:
-
format-title.pipe.ts— логіка пайпа; -
format-title.pipe.spec.ts— файл модульних тестів (можна видалити, якщо тестування зараз не потрібне).
Коли Angular створює пайп, він виглядає приблизно так:
pipe.ts
Ось що робить цей код:
-
Клас
FormatTitlePipeреалізує інтерфейсPipeTransform, що гарантує наявність методуtransformу пайпі; -
Метод
transformприймає значення (вхідні дані) та необов'язкові аргументи й повертає перетворений результат. На цьому етапі він просто повертає вхідне значення без змін; -
Назва пайпа (
formatTitle) визначається у декораторі@Pipe— саме цю назву ви будете використовувати в шаблоні.
Зараз пайп існує, але ще не виконує жодної логіки. Далі додамо необхідну функціональність.
Реалізація користувацького пайпу
Необхідно додати емодзі ✅ до заголовка залежно від статусу виконання завдання (task.completed). Оновіть пайп, щоб застосувати нашу користувацьку логіку форматування:
pipe.ts
Метод transform приймає два аргументи:
-
value— заголовок завдання; -
completed— булевий параметр, що вказує, чи виконано завдання.
Якщо завдання виконано (true), до кінця заголовка додається емодзі ✅. В іншому випадку повертається незмінений заголовок.
Використання пайпа в шаблоні
Щоб використати пайп у вашому Angular-шаблоні, застосуйте його за допомогою символу пайпа |:
template.html
Що тут відбувається:
-
task.title— значення, яке передається в пайп; -
formatTitle:task.completedзастосовує пайп і передає прапорецьcompleted; -
Заголовок міститиме емодзі ✅ або ні, залежно від статусу завдання.
Використання пайпів таким чином допомагає зберігати шаблони чистими й читабельними, а також переносить логіку форматування у багаторазово використовуваний і тестований код.
Дякуємо за ваш відгук!