【发布时间】:2020-09-27 09:07:26
【问题描述】:
我正在尝试了解 ngFor 循环中的 ngModel 行为。我创建了简单的 stackblitz 来显示问题:https://stackblitz.com/edit/angular-zaq8zs
当我在第一个输入中输入内容时,我在第二个输入中看到相同的值,并且第二个输入也获得焦点。我知道可以通过添加 trackBy 属性并将其设置为索引而不是身份检查来修复它,但我试图弄清楚为什么会发生这种情况。
如果我理解正确:
- 使用 [null,null,null,null] 初始化列表
- 我在第一个输入中键入了导致列表更改的内容:['1', null, null, null]。
- Angular 然后决定在开头添加一个容器并删除最后一个容器。
- 第一个容器现在变成了第二个(这就是焦点在那里的原因)。
但为什么我在第二个输入中看到相同的值?有趣的是:
{{index}} {{list[index]}}
显示有效值,所以我想这与 ngModel 未更新有关。任何想法为什么会发生?
【问题讨论】:
标签: angular typescript