首页 > 解决方案 > 在输入文本中使用粘贴时数据过滤器不起作用

问题描述

我正在使用 angular 框架和 angularfire2 开发一个网络应用程序。我的问题是当我粘贴复制的文本时我的数据过滤器不起作用。但是当我输入文本时效果很好。我该如何解决这个问题?

下面是list.html

<th colspan="5">
  Search Serial Number/Model: <input type="text" [(ngModel)]="searchstring" 
  (input)="searchuser($event)" />
</th>

下面是 list.ts 中的函数

searchuser(searchbar) {
  this.filteredusers = this.temparr;
  var q = searchbar.target.value;
  if (q.trim() == '') {
    return;
  }
  this.filteredusers = this.filteredusers.filter((v) => {
    if (v.serialnumber && v.serialnumber.toString().toLowerCase().indexOf(q) > 
        -1 ||
        v.detailspecification && 
        v.detailspecification.toLowerCase().indexOf(q.toLowerCase()) > -1  ) {
      return true;
    }
    return false;
  })
}

标签: javascriptangularangularfire2

解决方案


您可以在表单中使用 ngChange 事件来检测输入中的每一个更改,因此您不需要使用其他函数进行 paste 。

<input type="text" class="form-control" [(ngModel)]="dataSource.comments" (ngModelChange)="onChange($event)">

您可以使用 change 而不是 ngModelChange 来。

希望这会帮助你。


推荐阅读