angular - Angular 6 form builder array error
问题描述
ERROR Error: Cannot find control with path: 'partners -> 0 -> partner'
Can't seem to get this form builder array to compile. I practically worked off of the example provided here. Been looking at this for way too long, any help appreciated. I feel/hope it's something small I've over looked.
constructor() {
this.createForm();
}
createForm() {
this.form = this.fb.group({
firstName: ['', Validators.required],
lastName: ['', Validators.required],
partners: this.fb.array([])
});
}
get partners(): FormArray {
return this.form.get('partners') as FormArray;
}
addPartner() {
this.partners.push(this.fb.group(new Partner()));
}
export class Partner {
partner: '';
segment: '';
market: '';
supervisor: '';
}
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div formArrayName="partners" *ngIf="partners.length">
<div
*ngFor="let partner of form.controls.partners.controls; let i=index"
[formGroupName]="i">
</div>
<button type="button" (click)="addPartner()">+ Add Partner</button>
</div>
</form>
解决方案
我相信错误来自这一行:
<div formArrayName="partners" *ngIf="partners.length">
我建议然后替换为:
<ng-container *ngIf="partners.length">
<div formArrayName="partners" >
...
</div>
<ng-container>
推荐阅读
- image-processing - 在meshlab中计算切片网格的离散曲率
- reactjs - 试图通过函数内部的反应来管理状态并且无法获取函数的状态
- sql - tsql 查找过去 18 个月内未联系的成员
- java - 嵌套并行流是否安全?
- javascript - Javascript根据条件对二维数组进行排序
- azure-devops - Azure DevOps Ant 任务报告成功(有错误)
- python - 比较数据框后,输出 CSV 未返回所有行
- c# - 在具有用户和角色的数据库的 ASP.NET Core MVC 应用程序中设置/处理身份验证的最简单方法
- docker - 如何将 bitnami drupal 图像与外部数据库一起使用
- kotlin - 如何启动并行协程并返回结果