我试图将输入字段值绑定到列表的成员。我使用ngFor为每个成员创建输入字段。问题是,当我将新成员推到列表中时,模板上的所有输入字段都为空。双向绑定仍然存在,因为当我更改字段值时,列表中的成员值也会发生变化。当我将新成员推到列表中时,我所需要的只是一种将成员值保存在模板输入字段中的方法。以下是我的html代码:
<form action="submit">
<div *ngFor="let member of MyList; let i = index">
<label for="name"> Name:
<input type="text" name='name' [(ngModel)] ='MyList[i].name'></label>
</div>
</form>
<button (click)="addMember()">add parameter</button>
AddMember函数只是将一个新成员推入列表的末尾,因此模板也会更改并添加新字段。一切都在开始时找到,但一旦我将一个新成员推到列表中,前面的所有字段都变为空,尽管这些成员的名称值不是空的。
发布于 2017-04-24 16:17:24
由于您使用的是表单,因此每个name
都必须是唯一的,才能作为单独的表单字段进行计算。您可以为此使用索引:
<input type="text" name='name{{i}}' [(ngModel)] ='MyList[i].name'></label>
除非您这样做,否则每当您推送一个新的空字段时,所有字段都将变为空字段,因为它们被计算为相同的字段。尽管使用了ngModel
,但还是会发生这种情况。
https://stackoverflow.com/questions/43593073
复制相似问题