首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并FormGroups

合并FormGroups
EN

Stack Overflow用户
提问于 2019-08-26 17:36:45
回答 1查看 623关注 0票数 0

你好,我有一个关于formGroups或abstractControls的一般问题

我通过FormBuilder创建我的FormGroup

代码语言:javascript
复制
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表示。是否可以通过表单生成器创建一个新表单,并将其与我的旧表单组合并?

从服务器响应

代码语言:javascript
复制
{"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"}
EN

回答 1

Stack Overflow用户

发布于 2019-08-26 18:04:37

稍微修改一下你的函数createControl

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57655330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档