有什么方法可以只创建formbuilder对象。
目前,我的表单中有5个控件。为此,我使用反应形式。
但是在某些情况下,仅需要4个控件。我从服务器获取的元数据。
当前,我正在像这样创建formbuilder组:
this.inqDialogForm = this.fb.group({
account: ['', Validators.required],
reportingccy: ['',Validators.required],
adjustedThru: ['',Validators.required],
asof: ['',Validators.required],
asofDate: ['',Validators.required]
});
我想以一种方式创建它,如果作为响应,我得到4个字段,则仅创建4个验证。
我的回复样本:
{
"dialogForm":
[
{
"name": "Account"
"label": "For *"
"id" :
"parentId":
"type": "dropdown",
"enable": false
"visible": true
"validation":[{"required": true}]
},
{
"name": "AsOfDate"
"label": "AsOf"
"id" :
"parentId": null
"type": "dropdown",
"enable": false
"visible": true
"validation":[{"required": true}]
}
]
}
我已经拥有所有控件,这些控件是第三方控件。我不想为每个控件创建单独的组件并使用FormArray在运行时添加它。
我只想遍历响应并创建formbuilder。
任何建议将不胜感激。
谢谢
我能够使用formGroup的addControl方法实现这一点。 fControl是模型的数组。
createFormGroup(){
const formGroup: FormGroup = new FormGroup({});
this.fcontrols.forEach((element)=>{
let control: FormControl = new FormControl(element.name, Validators.required);
formGroup.addControl(element.name, control);
})
this.inqDialogForm = formGroup;
}