【发布时间】:2018-04-12 13:53:16
【问题描述】:
我在 *ngIf 下有模板,它只在表单加载后生成。此外,我在动态显示的字段下得到了失败的表单,这取决于按下按钮。我注销表单,它会返回正确丢失的 FormControl。
模板:
<div *ngIf="ready">
<form [formGroup]="form">
<div [formGroup]="form.controls.request">
<div *ngFor="let field of inputFields">
...
</div>
</div>
<div *ngIf="somethingEnabled">
<div [formGroup]="form.controls.Something">
<div class="input-container">
<label>Name: </label>
<input formControlName="Name">
</div>
<div [formGroup]="form.controls.Something.Organization">
<div class="input-container">
<label>ASD: </label>
<input formControlName="ASD">
</div>
<div [formGroup]="form.controls.Something.Organization.Other">
<div class="input-container">
<label>Id: </label>
<input formControlName="Id">
</div>
<div [formGroup]="form.controls.Something.Organization.Other.SchmeNm">
<div class="input-container">
<label>SchmeName: </label>
<input formControlName="SchmeName">
</div>
<div class="input-container">
<label>SchmeValue: </label>
<input formControlName="SchmeValue">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
代码:
generateForm() {
this.form = this.fb.group({
request: this.fb.group(
this.generateRequestFields())
,
Something: this.fb.group(this.generateSomething()),
address: this.fb.group(
this.generateAddress()
)
});
}
generateSomething() {
const returnObject = {};
returnObject['Name'] = new FormControl();
returnObject['Organization'] = this.fb.group(this.generateOrganization());
return returnObject;
}
generateOrganization() {
const returnObject = {};
returnObject['ASD'] = new FormControl();
returnObject['Other'] = this.fb.group({
Id: new FormControl(),
Schme: this.fb.group({
SchmeName: new FormControl(),
ShcmeValue: new FormControl()
}),
Issr: new FormControl()
});
return returnObject;
}
我只在激活 form.controls.something 部分时收到错误消息。 如果我删除模板的 form.controls.Something.Organization 部分,它可以正常工作。
错误: ERROR 错误:formGroup 需要一个 FormGroup 实例。请传一个。
我可能只是错过了一些东西,并希望我能在发布此内容时找到它,但似乎仍然无法得到它
【问题讨论】:
标签: angular nested-forms angular-reactive-forms