Angular 2:使用Pipe过滤多个字段

时间:2016-11-21 10:12:23

标签: javascript angular

我有两列codeproduct,nmproduct的表。如果只筛选一个字段,我就取得了成功。这是我的代码:

@Pipe({
  name: 'productFilter'
})

export class ProductFilterPipe implements PipeTransform {

transform(value: IProduct[], args: string[]): IProduct[] {
    let filter: string = args[0] ? args[0].toLocaleLowerCase() : null;
    return filter ? value.filter((product: IProduct) =>
        product.productName.toLocaleLowerCase().indexOf(filter) !== -1) :   value;
}
}

如何过滤多个字段codeproduct或nmproduct?谢谢

1 个答案:

答案 0 :(得分:4)

很难理解你的问题..但也许这会有所帮助:

@Pipe({
  name: 'productFilter'
})

export class ProductFilterPipe implements PipeTransform {
   transform(value: IProduct[], filter: string): IProduct[] {
      filter = filter ? filter.toLocaleLowerCase() : '';
      return filter && value ?
        value.filter(product =>
           (product.productName.toLocaleLowerCase().indexOf(filter) !== -1) ||
           (product.??npmName??.toLocaleLowerCase().indexOf(filter) !== -1)
        ) :
        value;
   }
}