【发布时间】:2019-11-28 07:09:23
【问题描述】:
我想输出一个表单,其中一个字段是一个数组,对于数组的每个元素,我需要输出我的输入。
组件:
ngOnInit() {
const fb = this.fb;
this.editForm = this.fb.group({
country: fb.control(null),
identifiers: this.fb.array([
this.fb.group({
codeIdentifier: fb.control(null),
numIdentifier: fb.control(null),
})
]),
});
this.organizationService.getOneById(this.id).subscribe((organization: Organization) => {
let ids: any[] = [];
organization.identifiers.forEach(item => {
let id: any = { "codeIdentifier": "", "numIdentifier": "" };
id.codeIdentifier = item.typeIdentifier.code;
id.numIdentifier = item.numIdentifier;
ids.push(id);
});
this.editForm.setControl('identifiers', this.fb.array(ids || []));
})
}
HTML:
<div [formGroup]="editForm">
<ng-container formArrayName="identifiers">
<ng-container *ngFor="let identifier of identifiers.controls; let i=index" [formGroupName]="i">
<input type="text" formControlName="codeIdentifier">
<input type="text" formControlName="numIdentifier">
</ng-container>
</ng-container>
</div>
出现错误:
找不到带有路径的控件:'identifiers -> 0 -> codeIdentifier'
【问题讨论】:
-
尝试使用
formControlName='{{i}} -
您为什么将
div与formControlName一起使用?将其更改为input -
还是一样的,没什么变化
-
我建议在您的 html 模板上将
formControlName="typeIdentifier"更改为formControlName="codeIdentifier" -
@AymenKanzari 你解决了你的问题。我的问题是,如果将单个表单组添加到表单数组中,则显示
Cannot find control with path。但是如果添加了多个表单组或没有添加表单组,则没有错误。
标签: angular angular5 angular-reactive-forms