【发布时间】:2020-10-03 19:24:20
【问题描述】:
我想创建一个包含未知数量的表单控件的表单组。 (根据我的数据库)。
我尝试使用FormArray、FormBuilder 来做到这一点,如下所示:
criterions:Criterion[]=[];
fb:FormBuilder= new FormBuilder();
preferencesForm:FormGroup=new FormGroup({
aliases: this.fb.array([
this.fb.control('')
])
});
get aliases() {
return this.preferencesForm.get('aliases') as FormArray;
}
constructor( private service:flightsService) { }
ngOnInit(): void {
this.service.getAllCriterion().subscribe(data=>{
this.criterions=data;
this.criterions.forEach(a=>this.aliases.push(this.fb.control('')))
});
}
我的 HTML 是:
<div [formGroup]="preferencesForm">
<div formArrayName="aliases">
<div *ngFor="let alias of aliases.controls; let i=index">
<label>
{{criterions[i].criterionName}}
<mat-radio-group formControlName="i" aria-label="Select an option">
<mat-radio-button [value]="true" >want</mat-radio-button>
<mat-radio-button [value]="false" >don't want</mat-radio-button>
<mat-radio-button [value]="" >don't care</mat-radio-button>
</mat-radio-group>
</label>
</div>
</div>
</div>
【问题讨论】:
标签: html angular typescript forms dynamic