【发布时间】:2018-02-22 09:43:08
【问题描述】:
我有一个有角度的表格。该表单由一个带有多个选择的 ngFor 组成。
<div *ngFor="let item of items; let i = index">
<select name="" id="" [(ngModel)]="items[i]">
<option *ngFor="let option of options" [value]="option.value">{{option.display}}</option>
</select>
</div>
这个例子的数据:
options = Array(10).fill(1).map((option,index) => {
return {
display:'thing' + index,
value: index
};
});
items = [2,7,2,7,2,7,2,7];
奇怪的是,当我更改第 2 次选择时,第 4 次选择会反映相同的更改。但是,该模型不会反映这种变化。
无论出于何种原因,视图都会更改输入后的 2 个索引以进行匹配。更奇怪的是,这只会在第一次发生,然后它会按照你的预期表现。
这是查看问题的关键: http://plnkr.co/edit/q1YnoPBFdBKm0JDMVk7Q?p=preview
这是什么原因造成的?我该如何解决这个问题?
【问题讨论】:
-
好问题。使用
trackBy解决它。 stackoverflow.com/questions/44476677/…这是你的例子plnkr.co/edit/TAbQFqa3NeBvQ3FpKYCP?p=preview