Đối với yêu cầu này, tôi thực hiện và xuất bản một thành phần chung . Xem
https://www.npmjs.com/package/w-ng5
Để sử dụng các thành phần này, trước đó, cài đặt gói này với npm:
npm install w-ng5 --save
Sau, nhập mô-đun trong app.module
...
import { PipesModule } from 'w-ng5';
Trong bước tiếp theo, thêm phần khai báo của app.module:
imports: [
PipesModule,
...
]
Sử dụng mẫu
Lọc chuỗi đơn giản
<input type="text" [(ngModel)]="filtroString">
<ul>
<li *ngFor="let s of getStrings() | filter:filtroString">
{{s}}
</li>
</ul>
Lọc chuỗi phức tạp - trường 'Giá trị' ở cấp 2
<input type="text" [(ngModel)]="search">
<ul>
<li *ngFor="let s of getComplexTypesExtends() | filter:[{field:'n1.n2.valor2', value: search}]">
{{s.nome}} - {{s.idade}} - {{s.n1.valor1}} - {{s.n1.n2.valor2}}
</li>
</ul>
Lọc chuỗi phức tạp - trường giữa - 'Giá trị' ở cấp 1
<input type="text" [(ngModel)]="search3">
<ul>
<li *ngFor="let s of getComplexTypesExtends() | filter:[{field:'n1.valor1', value: search3}]">
{{s.nome}} - {{s.idade}} - {{s.n1.valor1}} - {{s.n1.n2.valor2}}
</li>
</ul>
Lọc mảng đơn giản phức tạp - trường 'Nome' cấp 0
<input type="text" [(ngModel)]="search2">
<ul>
<li *ngFor="let s of getComplexTypesExtends() | filter:[{field:'nome', value: search2}]">
{{s.nome}} - {{s.idade}} - {{s.n1.valor1}} - {{s.n1.n2.valor2}}
</li>
</ul>
Lọc trong các trường cây - trường 'Valor' ở cấp 2 hoặc 'Valor' ở cấp 1 hoặc 'Nome' ở cấp 0
<input type="text" [(ngModel)]="search5">
<ul>
<li *ngFor="let s of getComplexTypesExtends() | filter:[{field:'n1.n2.valor2', value: search5}, {field:'n1.valor1', value: search5}, {field:'nome', value: search5}]">
{{s.nome}} - {{s.idade}} - {{s.n1.valor1}} - {{s.n1.n2.valor2}}
</li>
</ul>
Lọc trường không tồn tại - 'Valor' ở mức 3 không tồn tại
<input type="text" [(ngModel)]="search4">
<ul>
<li *ngFor="let s of getComplexTypesExtends() | filter:[{field:'n1.n2.n3.valor3', value: search4}]">
{{s.nome}} - {{s.idade}} - {{s.n1.valor1}} - {{s.n1.n2.valor2}}
</li>
</ul>
Thành phần này hoạt động với cấp thuộc tính vô hạn ...
<div *ngFor="let item of itemsList" *ngIf="conditon(item)" ...