我正在使用模型驱动的表单,我无法将其添加到使用ngFor显示的列表中。我在尝试迭代列表时遇到错误。我尝试了所有可用的解决方案。
错误
找不到路径控制:'类别 - > 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)
}
表单初始化
类别:allCategories,
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>
答案 0 :(得分:1)
@Jadoon,我想,@ DineshArun意味着他希望使用被动方法列出所有类别,并为每个类别使用FormA的FormArray。 问题是Angular通常将数组索引指定为组名默认为0,1 ... 但在@ DineshArun的情况下,这是行不通的。在我的情况下它并没有,但我找到了解决方案。
首先,看看this问题,这是明确的答案。以这种方式重写formArray的填充,然后将formControlName
控制的原始名称分配给patch()
。