如何在Angular2中的对象数组中基于属性值进行过滤? [英] How to filter based on property value in an array of objects in Angular2?

查看:42
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆