2016-11-21 3 views
-1

У меня есть таблица с двумя колонками codeproduct, nmproduct. я был успешным, если только фильтровать одно поле. это мой код:Угловой 2: фильтр нескольких полей с трубой

@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? спасибо

ответ

2

Трудно понять ваш вопрос .. Но, может быть, это поможет:

@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; 
    } 
} 
+0

я извиняюсь мой английский плохо. я попробую поблагодарить вас – sembilanlangit

+1

Это поистине впечатляющий бит кода. благодаря – paqogomez