Javascript Angular2 select中的更改何时反映在模型上

Javascript Angular2 select中的更改何时反映在模型上,javascript,angular,Javascript,Angular,我有一个选择字段,如下所示: <div *ngFor="let filter of filters; let idx = index"> <select [id]="'name' + idx" [(ngModel)]="filter.name" (change)="changeFilter(idx, $event)"> <option val="a">A</option> <option val="b">B</

我有一个选择字段,如下所示:

<div *ngFor="let filter of filters; let idx = index">
  <select [id]="'name' + idx" [(ngModel)]="filter.name" (change)="changeFilter(idx, $event)">
    <option val="a">A</option>
    <option val="b">B</option>
  </select>
</div>
现在,如果我在两个选项之间进行更改,change()函数需要一些时间-通常在
setTimeout
上不到3毫秒,但有时需要更多时间


现在,我确信这不是检测更改的最佳方法,我会找到正确的方法,但我很好奇如何确定更改何时反映在我的模型上?

ngModel
不支持绑定到由
ngFor
创建的变量

改用

[(ngModel)]="filters[idx].name"
你也可以试试

(ngModelChange)="changeFilter(idx, $event)"

ngModelChange
可能在值更改后发出,而对于
(更改)
它取决于浏览器首先处理的事件和事件处理程序(AFAIR
ngModel
使用
输入

ngModelChange
工作,当我有时间的时候,我会考虑将整个模型移动到完整模型(现在过滤器甚至不是顶级模型,它是另一个对象上的道具)
(ngModelChange)="changeFilter(idx, $event)"