1

示例.html

<input #gb type="text" pInputText class="ui-widget ui-text" [(ngModel)]
="filterText"  (ngModelChange)="filterText = $event; clearFilter(filterText)"/>

组件.ts

 clearFilter(value) {
                alert(value);// values is empty
            }

此警报将触发输入字段上的每个焦点(输入 | 输出)。如果模型对象有任何更改,我想点击该功能。

如何处理它以及为什么ngModelChange在输入框上聚焦和聚焦时触发事件?

4

2 回答 2

3

因为他们的工作是处理文本框中的变化,所以你有 focus 和 blur 方法

<input #gb type="text" pInputText class="ui-widget ui-text" 
  [(ngModel)] ="filterText" 
  (ngModelChange)="clearFilter(filterText)"
  (blur)="clearFilter($event)"
  (focus)="clearFilter($event)"/>

现场演示

根据评论更新

由于您正在使用[(ngModel)]并且(ngModelChange)正在触发。

于 2017-07-17T12:35:47.887 回答
0

如果在使用 *ngFor 时 ngModel 值发生变化,则解决方案是 trackBy

此处演示:https ://stackblitz.com/edit/angular-zwnges?file=app%2Fapp.component.html

于 2021-01-12T05:48:39.790 回答