【发布时间】:2018-02-13 13:38:08
【问题描述】:
这是我的 HTML:
<tr *ngFor="let row of formData; let i = index" [attr.data-index]="i">
<td *ngFor="let rowdata of formData[i]; let j = index" [attr.data-index]="j">
<input type="checkbox" name="row-{{i}}-{{j}}" [(ngModel)]="formData[i][j]">
</td>
</tr>
如您所见,我在 checkboxes 上设置了唯一名称以完全隔离它们。
formData 遵循如下结构:
formData = [
[false, false],
[true, true],
[false, true]
]
表单填充正确。
复选框是正确生成的,但是有一些奇怪的行为:
当我点击第一列的复选框时,它也会选中第二列的复选框;这似乎是完全随机的行为,但是当我选中第二列的框时,它对第一列的复选框没有影响
任何想法为什么会发生这种情况?
编辑
观察:我将input 更改为标准输入(不是复选框)。
我将表单值更改为“true”、“false”.. 而不是 true、false。
当我尝试更改输入中的文本时,我只能输入一个字符并且输入框“取消选择”(即 - 我每次输入一个字符时都必须不断单击输入框以激活它)
编辑
按要求输出 HTML:
【问题讨论】:
-
你添加组名了吗?
-
你能解释一下这是什么吗?
-
哦,输入不在
form标签内,他们需要吗? -
我不知道那里发生了什么,但也许你可以从你的数据中创建 angular formgroup
-
我希望避免这种情况,因为该表是从服务器数据动态填充的,并且使用模板驱动的解决方案更容易。我也很好奇为什么上面的代码会出问题
标签: javascript html angular angular2-directives