首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将自定义属性设置为嵌套反应性窗体结构中的所有窗体对象

将自定义属性设置为嵌套反应性窗体结构中的所有窗体对象
EN

Stack Overflow用户
提问于 2020-11-19 12:56:57
回答 1查看 481关注 0票数 0

我有一个复杂的角度应用的问题。目前,我有一个大的嵌套角反应表单结构,其中有一个“主”FormGroup,其中包含多个FormGroup / FormArrays / FormControls

例如:

代码语言:javascript
复制
 FormGroup: {  
    FormControl: {}  
    FormGroup: {FormGroup: {FormControl...,   FormControl...}}  
    FormArray: [FormGroup {...}, FormGroup{...}]    
...  
}

现在,我想将一个自定义的FormControl / Property添加到大主窗体的所有子表中。在我的例子中,这就像"Read-Only: true“。

一种解决方案是将HTML中的所有子元素(表单)赋予父表单为@Input,因此我必须只向父窗体添加一个属性。但也许有一种更顺利的方式来做到这一点,我无法想象。

非常感谢您的建议或任何解决方案。

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 16:15:43

FormGroup可以在控件(它们是对象)上迭代,但您可以使用Object.key--您可以使用递归函数。

代码语言:javascript
复制
setEnabled(formGroup,value)
  {
     Object.keys(formGroup.controls).forEach(x=>{
       const gr=formGroup.get(x)
       if (gr.controls) //if has controls is a formGroup (or a FormArray)
            this.setEnabled(gr,value)
        else
        {
          console.log(gr.value) //<--show the value
          if (value)
            gr.enable()
          else
            gr.disable();
        }
     })
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64912140

复制
相关文章

相似问题

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