Für diese Anforderung implementiere und veröffentliche ich eine generische Komponente . Sehen
https://www.npmjs.com/package/w-ng5
Um diese Komponenten zu verwenden, installieren Sie dieses Paket zuvor mit npm:
npm install w-ng5 --save
Importieren Sie anschließend das Modul in app.module
...
import { PipesModule } from 'w-ng5';
Fügen Sie im nächsten Schritt den Deklarationsabschnitt von app.module hinzu:
imports: [
PipesModule,
...
]
Verwendung der Probe
Einfache Zeichenfolge filtern
<input type="text" [(ngModel)]="filtroString">
<ul>
<li *ngFor="let s of getStrings() | filter:filtroString">
{{s}}
</li>
</ul>
Filterung komplexer Zeichenfolgen - Feld 'Wert' in Ebene 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>
Filterung komplexer Zeichenfolgen - mittleres Feld - 'Wert' in Ebene 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>
Einfaches Filtern komplexer Arrays - Feld 'Nome' Level 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>
Filtern in Baumfeldern - Feld 'Tapferkeit' in Stufe 2 oder 'Tapferkeit' in Stufe 1 oder 'Nome' in Stufe 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>
Nicht vorhandenes Feld filtern - 'Tapferkeit' in nicht vorhandenem Level 3
<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>
Diese Komponente arbeitet mit einer unendlichen Attributebene ...
<div *ngFor="let item of itemsList" *ngIf="conditon(item)" ...