I have an array of Users in where every user has a name (user.name):
let users = Array<User>();
Imagine I have this array of strings I want to filter users array based on the next array of strings:
let filterargs = ['Lau', 'Za'];
This is my markup:
<li *ngFor="let user of usersList | filter: filterargs; let i = index;">
This is my pipe filter but it isn't working:
import {Pipe, Injectable, PipeTransform} from "@angular/core";
@Pipe({name: 'filter', pure: false})
@Injectable()
export class FilterPipe implements PipeTransform {
transform(items: any[], args: any[]): any {
// filter items array, items which match and return true will be kept, false will be filtered out
return items.filter(item => item.name.toLowerCase().indexOf(args[0].name.toLowerCase()) !== -1);
}
}
args[0].toLowerCase()instead ofargs[0].name.toLowerCase()