В приложениях Angular фильтрация данных является общим требованием, обеспечивающим пользователям удобство поиска. Библиотека ng2-search-filter — мощный инструмент, упрощающий процесс реализации функций поиска в проектах Angular. В этой статье мы рассмотрим различные методы использования ng2-search-filter с примерами кода, которые помогут вам понять и эффективно использовать его возможности.
Метод 1: базовое использование
Самый простой способ использования ng2-search-filter — применить его к массиву объектов и привязать входное значение поиска для фильтрации данных. Вот пример:
-
Установить библиотеку ng2-search-filter:
npm install ng2-search-filter -
Импортируйте Ng2SearchPipeModule в свой модуль Angular:
import { Ng2SearchPipeModule } from 'ng2-search-filter'; @NgModule({ imports: [ Ng2SearchPipeModule ] }) export class AppModule { } -
Реализуйте логику фильтрации в своем компоненте:
import { Component } from '@angular/core'; @Component({ selector: 'app-data-list', template: ` <input type="text" [(ngModel)]="searchTerm" placeholder="Search..."> <ul> <li *ngFor="let item of data | filter: searchTerm">{{ item.name }}</li> </ul> ` }) export class DataListComponent { data = [ { id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Alice' } ]; searchTerm: string; }
Метод 2: фильтрация по определенным свойствам
Иногда вам может потребоваться фильтровать данные на основе определенных свойств объектов в вашем массиве. Библиотека ng2-search-filter предоставляет возможность фильтровать определенные свойства с помощью директивы filterBy. Вот пример:
-
Добавьте директиву
filterByк элементу ввода:<input type="text" [(ngModel)]="searchTerm" placeholder="Search..." [filterBy]="['name', 'age']"> -
Измените логику фильтрации в своем компоненте:
import { Component } from '@angular/core'; @Component({ selector: 'app-data-list', template: ` <input type="text" [(ngModel)]="searchTerm" placeholder="Search..." [filterBy]="['name', 'age']"> <ul> <li *ngFor="let item of data | filter: searchTerm">{{ item.name }} ({{ item.age }} years old)</li> </ul> ` }) export class DataListComponent { data = [ { id: 1, name: 'John', age: 25 }, { id: 2, name: 'Jane', age: 30 }, { id: 3, name: 'Alice', age: 28 } ]; searchTerm: string; }
Метод 3: пользовательская конфигурация канала
Библиотека ng2-search-filter позволяет настроить конфигурацию канала для более сложных сценариев фильтрации. Вы можете указать чувствительность к регистру, использовать собственный алгоритм поиска или расширить канал по умолчанию для реализации собственной логики. Вот пример:
-
Создание пользовательской конфигурации канала:
import { PipeConfig } from 'ng2-search-filter'; export const customPipeConfig: PipeConfig = { caseSensitive: true, debounceTime: 200, threshold: 0.2 }; -
Используйте пользовательскую конфигурацию канала в своем компоненте:
import { Component } from '@angular/core'; import { customPipeConfig } from './custom-pipe-config'; @Component({ selector: 'app-data-list', template: ` <input type="text" [(ngModel)]="searchTerm" placeholder="Search..."> <ul> <li *ngFor="let item of data | filter: searchTerm:customPipeConfig">{{ item.name }}</li> </ul> ` }) export class DataListComponent { data = [ { id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Alice' } ]; searchTerm: string; customPipeConfig = customPipeConfig; }
Библиотека ng2-search-filter предоставляет несколько удобных методов фильтрации данных в приложениях Angular. Следуя примерам и фрагментам кода, представленным в этой статье, вы сможете быстро интегрировать мощные функции поиска в свои проекты. Поэкспериментируйте с различными конфигурациями и адаптируйте библиотеку под свои конкретные нужды. Приятного кодирования!