Angular 2 按精确值过滤(严格相等)
Angular 2 filter by exact values (strict equality)
我创建了一个管道,它根据 angular 中的用户输入搜索来过滤数据 2.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filterName',
pure:false
})
export class FilterNamePipe implements PipeTransform {
transform(items: any[], searchTerm: any): any[] {
if (!searchTerm) return items;
return items.filter(function(item){
if(item.fullNme == null){
return null;
}else {
return item.fullNme.toLowerCase().includes(searchTerm.toLowerCase());
}
})
}
}
JSON :
{ name: "Peter Martha", age: 2 },
{ name: "Martha, Pablo ", age: 55 },
{ name: "Linda Peter", age: 20 },
上面的过滤器有效 fine.I 想要一个基于第一个输入的过滤器 string.When 我寻找 "P/p" 它应该只显示 Peter Martha,但不是 Linda Peter 或 Martha Pablo。有人能告诉我我做错了什么或应该 done.Thanks提前。
我会使用 String.startsWith()
函数
return item.fullNme.toLowerCase().startsWith(searchTerm.toLowerCase());
我创建了一个管道,它根据 angular 中的用户输入搜索来过滤数据 2.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filterName',
pure:false
})
export class FilterNamePipe implements PipeTransform {
transform(items: any[], searchTerm: any): any[] {
if (!searchTerm) return items;
return items.filter(function(item){
if(item.fullNme == null){
return null;
}else {
return item.fullNme.toLowerCase().includes(searchTerm.toLowerCase());
}
})
}
}
JSON :
{ name: "Peter Martha", age: 2 },
{ name: "Martha, Pablo ", age: 55 },
{ name: "Linda Peter", age: 20 },
上面的过滤器有效 fine.I 想要一个基于第一个输入的过滤器 string.When 我寻找 "P/p" 它应该只显示 Peter Martha,但不是 Linda Peter 或 Martha Pablo。有人能告诉我我做错了什么或应该 done.Thanks提前。
我会使用 String.startsWith()
函数
return item.fullNme.toLowerCase().startsWith(searchTerm.toLowerCase());