角2管规则

时间:2017-05-17 19:03:04

标签: angular pipe

我写了一个管道,它应该过滤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)

1 个答案:

答案 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