角度2+搜索功能无管道

时间:2018-04-12 20:31:34

标签: angular search input

我有100多个结果,我希望能够在没有管道的情况下进行搜索。不使用管道的原因是它会将性能降低很多。 问题是.indexOf返回读取属性' indexOf'未定义的 错误

理想情况下,我想在输入时显示结果(即双向绑定?)



    
<th class="header7"><input type="text" placeholder="search" 
  [(ngModel)]="filterString" (keyup)="applyfilter()"></th>

<div class="arrayOfGrade"
  *ngFor="let key of arrayOfGradedCoins; let i = index">


this.arrayOfGradedCoins[i] = 
  {"_id":key._id, "item1": this.item1,"item2": this.item2}


applyfilter = () => {
  var results =[];

  for (var i = 0; i<this.arrayOfGradedCoins.length; i++) {
    for (let key in this.arrayOfGradedCoins[i]) {
      if (this.arrayOfGradedCoins[key].indexOf(this.filterString) != -1) {
        results.push(this.arrayOfGradedCoins[i]);
      }
    }
  }

  this.arrayOfGradedCoins = results;
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

根据评论中的详细信息,我假设您要搜索this.arrayOfGradedCoins[i]中保存的对象的键。根据这一点,你应该得到基于此的结果。

const results = this.arrayOfGradedCoins.filter(c => {
    const keys = Object.keys(c).filter(k => k !=== '_id');
    return keys.find(k => ~k.indexOf(this.filterString));
});