2016-11-21 3 views
-1

Ich habe Tabelle mit zwei Spalte codeproduct, nmproduct. Ich bin erfolgreich gewesen, wenn ich nur ein Feld gefiltert habe. dies ist mein Code:Angular 2: Filter mehrere Felder mit Pipe

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

wie mit mehreren Feldern codeproduct oder nmproduct filtern? danke

Antwort

2

Fest Ihre Frage zu verstehen .. Aber vielleicht wird dies dazu beitragen:

@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

ich mein Englisch bedaure, ist schlecht. Ich werde versuchen, danke – sembilanlangit

+1

Das ist ein wirklich spektakuläres Stück Code. Vielen Dank – paqogomez