在输入文本

时间:2018-04-26 04:10:00

标签: javascript angular angularfire2

我正在使用角度框架和angularfire2开发一个Web应用程序。我的问题是,当我粘贴复制的文本时,我的数据过滤器无法正常工作。但是当我键入文本时它很有效。我该如何解决这个问题?

下面是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;
  })
}

3 个答案:

答案 0 :(得分:2)

您可以在表单中使用ngChange事件来检测输入中的每个更改,因此您无需使用其他功能进行粘贴。

num

您可以使用更改而不是ngModelChange来。

希望这会对你有所帮助。

答案 1 :(得分:1)

使用粘贴事件。

<input type="text" [(ngModel)]="searchstring"  (input)="searchuser($event)" (paste)="searchuser($event)" />

答案 2 :(得分:1)

尝试ngModelChange检测输入字段的每个更改

(input)="searchuser($event)"替换为(ngModelChange)="searchuser($event)"

试试这个

<input type="text" [(ngModel)]="searchstring" (ngModelChange)="searchuser($event)" />