【发布时间】:2019-12-02 09:42:05
【问题描述】:
我是使用 Angular 的新手,现在正在学习如何创建管道来过滤数据。我能够这样做,但有人可以给我一些关于如何基于多个属性进行过滤的想法
按名称过滤
<mat-card *ngFor="let item of model | searchFilter:searchTerm">
<mat-card-title>
{{ item.title }}
</mat-card-title>
现在我必须根据项目属性进行过滤
<mat-card-content>
<div *ngFor="let property of item.properties">
{{ (property.labelVisible ? property.label + ' ' : '') + property.value }}
</div>
搜索过滤管道
import {Pipe, PipeTransform} from '@angular/core';
import {Card} from "./card";
@Pipe({
name:'searchFilter'
})
export class SearchFilterPipe implements PipeTransform{
transform(model: Card<any>[], searchTerm:string):Card<any>[]
{
if(!model || !searchTerm){
return model
}
return model.filter(item =>item.title.toLowerCase().indexOf(searchTerm.toLowerCase())!== -1)
}
}
【问题讨论】:
标签: angular filter properties pipe