이 요구 사항에 대해서는 일반 구성 요소를 구현하고 게시합니다 . 보다
https://www.npmjs.com/package/w-ng5
이 구성 요소를 사용하려면 먼저 npm과 함께이 패키지를 설치하십시오.
npm install w-ng5 --save
그런 다음 app.module에서 모듈을 가져옵니다.
...
import { PipesModule } from 'w-ng5';
다음 단계에서 app.module의 선언 섹션에 추가하십시오.
imports: [
PipesModule,
...
]
샘플 사용
간단한 문자열 필터링
<input type="text" [(ngModel)]="filtroString">
<ul>
<li *ngFor="let s of getStrings() | filter:filtroString">
{{s}}
</li>
</ul>
복잡한 문자열 필터링-레벨 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>
복잡한 문자열 필터링-중간 필드-레벨 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>
복잡한 배열 단순 필터링-필드 'Nome'레벨 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>
트리 필드에서 필터링-레벨 2의 'Valor'필드 또는 레벨 1의 'Valor'또는 레벨 0의 'Nome'
<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>
존재하지 않는 필드 필터링-존재하지 않는 레벨 3의 'Valor'
<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>
이 구성 요소는 무한 속성 수준에서 작동합니다.
<div *ngFor="let item of itemsList" *ngIf="conditon(item)" ...