我写了一个管道,它应该同时过滤AUID和名字,但不知怎么的,它只对名字起作用。有人能帮我找出原因吗?
以下是代码:
return value.filter((searchresult:ISearch)=>
(filterBy2?searchresult.AU_ID.indexOf(filterBy2)!==-1:true)&&
(filterBy?searchresult.first_name.toLocaleLowerCase().indexOf(filterBy)!==-1:true)发布于 2017-05-18 05:03:57
我用了你提供的同样的代码。它为我工作。您能否确保AU_ID是作为参数而不是数字传递的字符串,在这种情况下,indexOf不能工作。
transform(value: Array<any>, filterBy: string, filterBy2: string): Array<any> {
filterBy = filterBy ? filterBy.toLocaleLowerCase() : null;
filterBy2 = filterBy2 ? filterBy2 : null;
return value.filter((searchresult: Array<any>) =>
(filterBy2 ? searchresult['AU_ID'].indexOf(filterBy2) !== -1 : true) &&
(filterBy ? searchresult['first_name'].toLocaleLowerCase().indexOf(filterBy) !== -1 : true)
);
}在html文件中,我使用了以下代码:
<div *ngFor="let dummy of dummyData | screeningSearch: 'A' : '1'">hi {{dummy.first_name}}</div>数据保存如下:
dummyData = [
{
'AU_ID': '1234',
'first_name': 'Albert'
},
{
'AU_ID': '5678',
'first_name': 'Andi'
}
];结果:
hi Albert
https://stackoverflow.com/questions/44032903
复制相似问题