我写了一个管道,它应该过滤AUID和firstname,但不知何故,它只适用于firstname。任何人都可以帮我找出原因吗?
这是代码:
return value.filter((searchresult:ISearch)=>
(filterBy2?searchresult.AU_ID.indexOf(filterBy2)!==-1:true)&&
(filterBy?searchresult.first_name.toLocaleLowerCase().indexOf(filterBy)!==-1:true)
答案 0 :(得分:0)
我使用了您提供的相同代码。它为我工作。你能确定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