我有一个用户数组,每个用户都有一个名字(user.name
):
let users = Array<User>();
想象一下,我有这个字符串数组,我希望根据下一个字符串数组过滤users
数组:
let filterargs = ['Lau', 'Za'];
这是我的标记:
<li *ngFor="let user of usersList | filter: filterargs; let i = index;">
这是我的管道过滤器,但它不起作用:
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);
}
}
答案 0 :(得分:5)
我认为您的过滤功能不正确。 尝试做:
return items.filter(item => item.name.toLowerCase().indexOf(args[0].toLowerCase()) !== -1);
希望这有助于。
答案 1 :(得分:0)
也许这会对你有所帮助:
return items.filter(item => item[0].name.toLowerCase().indexOf(args[0].toLowerCase()) !== -1);
我对数组中的对象有类似的问题,通过添加[0],它对我有效。