嵌套的ngFor与双向数据绑定Angular2

时间:2017-06-26 20:46:59

标签: javascript angular typescript ngfor angular2-ngmodel

我尝试使用嵌套的ngFor和双向数据绑定来创建输入字段表。我几乎实现了这一点,但是双向数据绑定的东西是错误的,我找不到问题。

所以,这就是我想要的 - 我希望能够输入每个字母。

My examle table with inputs fieleds

我有这个表,我可以输入,但是如果我输入第一个单元格,则相同的值出现在第二个中,如果我输入第三个,则值也会出现在第4个和第5个... 我无法理解为什么,我想问题就在于这一行

<input maxlength="1" size='5' name="{{i}}{{j}}" [(ngModel)]="helper[i][j]" [id]="j"/>

你能告诉我,我怎么能解决这个问题? 这是我的掠夺者,它有效,但有了这个错误,我上面描述了...... My plunker is here

1 个答案:

答案 0 :(得分:1)

使用*ngFor时,您应该尽量避免直接访问正在迭代的数组,例如使用[(ngModel)]="helper[i][j]"

通常,在使用数据绑定时,应该尝试始终使用完整对象和点(。)表示法。

在您的情况下,只需用对象数组['','','','','']替换原始数组[value: '', value: '', value: '', value: '', value: '']并直接绑定它。

<td *ngFor="let item2 of helper[i]; let j = index;">
    <input maxlength="1" size='5' name="{{i}}{{j}}" [(ngModel)]="item2.value" [id]="j"/>
</td>

我已更新您的plunker