【发布时间】:2018-06-04 07:56:27
【问题描述】:
我在我的 Angular 5 项目中创建了一个管道,它将从 html 和过滤器数组中获取输入,并返回过滤后的数组。但目前我正在从 HTML 文件中传递属性名称(“firstName”)。现在我想要它,它应该从属性“firstName”和“lastName”中过滤。请告诉我我应该改变什么来做同样的事情???
搜索过滤器.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'searchFilter'
})
export class SearchFilter implements PipeTransform {
transform(data: any, search?: string, propertyName?: string): any {
if (search === undefined) {
return data;
} else {
return data.filter(obj => obj[propertyName].toLowerCase().includes(search.toLowerCase()));
}
}
}
user.component.html
<div class="row" *ngFor="let data of datas| searchFilter: search: 'firstName'}">
{{data.lastName}}, {{data.firstName}}
</div>
样本数据.ts
datas: [
{ firstName: 'vipin', company: 'abc', lastName: 'sharma' },
{ firstName: 'kevin', company: 'abc2', lastName: 'xyz' },
{ firstName: 'Leos', company: 'abc3', lastName: 'abc' },
]
【问题讨论】:
-
传递“firstName|lastName”之类的搜索文本并在管道中拆分,然后进行适当的搜索
-
能否写出指令的代码。
标签: angular angular2-template angular2-forms angular2-directives angular6