Ant*_*ony 14 angular angular-reactive-forms
我有一个充满实例的FormGroup控件FormArrayFormGroup
someForm = this.fb.group({
days: this.fb.array([
this.fb.group({
description: ['']
})
])
})
Run Code Online (Sandbox Code Playgroud)
另外,我有一个用于该数组的吸气剂
get days(): FormArray {
return this.someForm.get('days') as FormArray;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试迭代FormArray并将其分配给[formGroup]指令时,如本文所示
<div *ngFor="let day of days.controls">
<ng-container [formGroup]="day">
...
Run Code Online (Sandbox Code Playgroud)
我越来越
error TS2740: Type 'AbstractControl' is missing the following properties from type 'FormGroup': controls, registerControl, addControl, removeControl, and 3 more.
Run Code Online (Sandbox Code Playgroud)
小智 12
另一种解决方法是在组件中使用铸造。
模板:
<ng-container [formGroup]="getFormGroup(day)">
Run Code Online (Sandbox Code Playgroud)
成分:
getFormGroup(control: AbstractControl) { return control as FormGroup; }
Run Code Online (Sandbox Code Playgroud)
这样我们仍然可以利用该控件作为 ngFor for formArray 中循环组件的输入值
Run Code Online (Sandbox Code Playgroud)<ng-container *ngFor="let day of days.controls"> <childComponent [formGroup]="day"></childComponent> </ng-container>
我在这篇文章FormGroups中找到了一种解决方法,可以通过以下方式进行迭代index:
<div *ngFor="let day of days.controls; let i=index">
<ng-container [formGroupName]="i">
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13614 次 |
| 最近记录: |