你好,我有一个关于formGroups或abstractControls的一般问题
我通过FormBuilder创建我的FormGroup
createControl() {
const group = this.fb.group({});
this.fields.forEach(field => {
if (field.type === 'button') {
return;
}
const control = this.fb.control(
{value: field.value, disabled: field.disabled},
this.bindValidations(field.validations || [])
);
group.addControl(field.name, control);
});
return group;
}当我想要创建动态表单时,我会使用表单生成器。现在一些值发生了变化,some控件的一些选项也发生了变化。我的服务器向我发送了一个新的FormGroup表示。是否可以通过表单生成器创建一个新表单,并将其与我的旧表单组合并?
从服务器响应
{"formControls[
{"name":"name","inputType":"text","disabled":false,"label":"Username","type":"input"},
{"name":"gender","options":["Male","Female"],"label":"Gender","type":"radiobutton","value":"Male"},
{"name":"country","options":
[{"value":"Germany","key":"1"},{"value":"Germany","key":"2"}],
"disabled":false,"label":"Country","type":"select","value":"UK"}],"name":"MyFirstForm"}发布于 2019-08-26 18:04:37
稍微修改一下你的函数createControl
createControl(groupOld) {
//then you can
const group = groupOld|| this.fb.group({});
....and add all the fields of this.fields..
..you can use a if like
if (!groupOld.get('field.value'))
//add the field
//or
const value=groupOld.value
...and after create the form use
group.patchVallue(value);
}https://stackoverflow.com/questions/57655330
复制相似问题