如何在Angular2中的对象数组中基于属性值进行过滤? [英] How to filter based on property value in an array of objects in Angular2?
本文介绍了如何在Angular2中的对象数组中基于属性值进行过滤?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我输入的文本如下所示:
I have an input text that takes the area as show below:
<input type="text" [(ngModel)]="areaSearch">
而且,我有一个列表根据要输入的区域对 area_name
属性
And, i have a list to filter based on the entered area against area_name
property
<ul *ngIf="areaSearch">
<li *ngFor="let area of areaList | filter : {area_name: areaSearch} ">
...
</li>
</ul>
出现类似 pipe'filter'的错误
.谁能帮我解决这个问题?.
Am getting error like The pipe 'filter' could not be found
. Can anyone help me to solve this?..
推荐答案
Angular没有名为 filter
的概念,而应创建 自定义管道
,如下所示,
Angular does not have concept named filter
, instead you should create your custom pipe
as follows,
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'filterByArea'})
export class FilterByStatusPipe implements PipeTransform {
transform(areaList : any, areaname: string): any[] {
if (areaList) {
return areaList.filter((listing: any) => listing.area_name === areaname);
}
}
}
并按如下所述使用它,
<ul *ngIf="areaSearch">
<li *ngFor="let area of areaList | filterByArea:areaSearch">
...
</li>
</ul>
这篇关于如何在Angular2中的对象数组中基于属性值进行过滤?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文