代码之家  ›  专栏  ›  技术社区  ›  raju

访问嵌套FormGroup中的FormArray,angular6

  •  0
  • raju  · 技术社区  · 6 年前

    我有一个简单的反应形式

      ngOnInit() {
        this.outerForm = this._formBuilder.group({
          firstFormGroup: this._formBuilder.group({
            nserNumber: ['', [Validators.required, Validators.pattern(this.spacePattern)]],            
          }),
          secondFormGroup: this._formBuilder.group({
            nser1Number: ['', [Validators.required, Validators.pattern(this.spacePattern)]],
            connectionRow: this._formBuilder.array([{
              connectionType: [''],
              switchHostname: ['']
            }])
          })
        });
      }
    

    我可以在UI中显示这个。但我无法展示 connectionRow

    <fieldset formGroupName="secondFormGroup">
          <input matInput placeholder="PID number" id='nser1Number' formControlName="nser1Number">
    
        <div class='formRow' *ngFor="let itemrow of connectionRow.controls; let i=index" [formGroupName]="i">
            {{i}}
        </div>
      </fieldset>
    

    请帮忙

    0 回复  |  直到 5 年前
        1
  •  1
  •   Sharan Mohandas    6 年前

    模板中没有提到formArrayName。

    在HTML中更新

    <fieldset formGroupName="secondFormGroup">
        <input matInput placeholder="PID number" id='nser1Number' formControlName="nser1Number">
        <div formArrayName="connectionRow">
            <div class='formRow' *ngFor="let itemrow of connectionRow.controls; let i=index" [formGroupName]="i">
                <input matInput placeholder="Tenant" formControlName="connectionType">
                <input matInput placeholder="Tenant" formControlName="switchHostname">
            </div>
        </div>
    </fieldset>
    

    在TS文件中

    get connectionRow(): FormArray {
        return this.outerForm.get('secondFormGroup').get("connectionRow") as FormArray;
    }
    enter code here
    

    <mat-form-field>
        <input matInput placeholder="Enter your email" formControlName="connectionType" required>
        <mat-error *ngIf="connectionRow.controls[i].connectionType.invalid">Your message</mat-error>
    </mat-form-field>