Angular 嵌套的角度窗体找不到FormGroup

Angular 嵌套的角度窗体找不到FormGroup,angular,nested-forms,angular-reactive-forms,Angular,Nested Forms,Angular Reactive Forms,我将模板放在*ngIf下,它仅在加载表单后生成。此外,我在一个动态显示的字段下得到了失败的表单,该字段取决于按钮的按下。我注销表单,它返回正确丢失的FormControl 模板: <div *ngIf="ready"> <form [formGroup]="form"> <div [formGroup]="form.controls.request"> <div *ngFor="let field of inputF

我将模板放在*ngIf下,它仅在加载表单后生成。此外,我在一个动态显示的字段下得到了失败的表单,该字段取决于按钮的按下。我注销表单,它返回正确丢失的FormControl

模板:

<div *ngIf="ready">
 <form [formGroup]="form">
        <div [formGroup]="form.controls.request">
          <div *ngFor="let field of inputFields">
            ...
          </div>
        </div>

        <div *ngIf="somethingEnabled">
          <div [formGroup]="form.controls.Something">
            <div class="input-container">
              <label>Name: </label>
              <input formControlName="Name">
            </div>

            <div [formGroup]="form.controls.Something.Organization">

              <div class="input-container">
                <label>ASD: </label>
                <input formControlName="ASD">
              </div>

              <div [formGroup]="form.controls.Something.Organization.Other">
                <div class="input-container">
                  <label>Id: </label>
                  <input formControlName="Id">
                </div>

                <div [formGroup]="form.controls.Something.Organization.Other.SchmeNm">

                  <div class="input-container">
                    <label>SchmeName: </label>
                    <input formControlName="SchmeName">
                  </div>

                  <div class="input-container">
                    <label>SchmeValue: </label>
                    <input formControlName="SchmeValue">
                  </div>

                </div>
              </div>
            </div>

          </div>
        </div>
      </form>
    </div>
我只在激活form.controls.something部分时收到错误。 如果我删除模板中的form.controls.Something.Organization部分,效果很好

错误: 错误:formGroup需要一个formGroup实例。请把一个传进来


我可能错过了一些东西,希望在发布此内容时能找到它,但似乎仍然无法获得它

当您在表单组中时,您不需要访问父表单的控件来定义其子表单组,您只需使用名称即可

<form [formGroup]="form">
        <div [formGroup]="request">
          <div *ngFor="let field of inputFields">
            ...
          </div>
可能如果您使用console.logthis.form.controls.Something.Organization,它也会返回undefined。对于添加的每个FormGroup,您必须首先访问其控件,然后进入下一个级别,如中所示:

<div [formGroup]="form.controls.Something.controls.Organization">
 ...
   <div [formGroup]="form.controls.Something.controls.Organization.controls.Other">
    ...
form.controls将浏览您定义的确切路径,而form.get将转到您指定的确切控件,这使得它对于多层表单非常有用,以便于维护和读取


让我们知道你得到什么。对于嵌套形式组,

>P>使用FrimGypNeNo.FrimeGoopy.

我得到这个。Fr.OpUpDeTestRealRealy并不是一个函数,如果我去掉嵌套,这可能会有帮助:@ TasaskSnaskas如果我的答案帮助你解决这个问题,请考虑接受正确的答案。谢谢
<div [formGroup]="form.controls.Something.controls.Organization">
 ...
   <div [formGroup]="form.controls.Something.controls.Organization.controls.Other">
    ...
<div [formGroup]="form.get("Something").get("Organization")">