Angular 2按精确值过滤(严格相等)

时间:2017-08-24 19:47:43

标签: angular angular2-template angular2-forms angular-pipe

我创建了一个根据用户输入搜索角度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 },

上面的过滤器工作正常。我想要一个基于第一个输入字符串过滤的过滤器。当我寻找" P / p"它应该只显示 Peter Martha ,但不能显示 Linda Peter Martha Pablo 。可以告诉我有什么问题或者应该做些什么更改完成。谢谢。

1 个答案:

答案 0 :(得分:1)

我会使用String.startsWith()函数

return item.fullNme.toLowerCase().startsWith(searchTerm.toLowerCase());