1
我有一個角度形式。該表單由一個ngFor和幾個選擇組成。Angular 2 ngFor在索引+ 2處錯誤地更改了值
<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索引。即使是陌生人,這隻會在第一次發生,然後它會表現出你的期望。
這裏的plunker,看問題: http://plnkr.co/edit/q1YnoPBFdBKm0JDMVk7Q?p=preview
什麼會導致此?我如何解決這個問題?
好問題。使用'trackBy'來解決它。 https://stackoverflow.com/questions/44476677/ngmodel-cannot-detect-array-changes-correctly這裏是你的例子http://plnkr.co/edit/TAbQFqa3NeBvQ3FpKYCP?p=preview – yurzui