【发布时间】:2017-11-16 08:25:18
【问题描述】:
我正在处理模型驱动的表单,但无法将项目添加到使用 ngFor 显示的列表中。我目前在尝试迭代列表时遇到错误。我尝试了所有可用的解决方案。
错误
找不到带有路径的控件:'categories -> 0'
ts 文件
private categories : any= [{name: 'Strict',selected : false},
{name: 'Moderate',selected : true},
{name: 'Flexible',selected : true}];
let allCategories: FormArray = new FormArray([]);
for (let i = 0; i < this.categories.length; i++) {
let fg = new FormGroup({});
fg.addControl(this.categories[i].name, new FormControl(this.categories[i].selected))
allCategories.push(fg)
}
表单初始化
类别:所有类别,
HTML部分
<div formArrayName="categories">
<div *ngFor="let category of categories; let i=index">
<span formGroupName="{{i}}">
<label>
<input type="checkbox" formControlName="{{category.name}}"/>
{{category.name}}
</label>
</span>
</div>
</div>
【问题讨论】:
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。
-
几个问题,如果只有3个复选框,为什么还要遍历表单?
allCategories是干什么用的?FormArray类是什么样的?为什么不直接使用FormControls的数组? -
@jadoon,我正在尝试为我的应用程序实现反应式表单。在提交时,我将 json 格式保存在 mongo 中。现在我想使用 json 构建表单。我在表单数组的迭代中苦苦挣扎。patchValue 仅适用于简单的 json。我想要以下格式的 json 数组之类的补丁
-
格式 { name : 'Dinesh', dob : '02/04/1991', addresses : [ { line1 : 'line1' }, {line2 : 'line2'}]}.. 你能帮我怎么做?
标签: angular2-forms