从嵌套表单组获取控件

dav*_*688 5 angular angular-reactive-forms

我有一个FormGroup,嵌套在另一个FormGroup中,我想在其中使用get()获得某个控件。

我尝试了以下解决方案,该解决方案不起作用:

formGroup.get('formGroupKey').get('formControlKey');
Run Code Online (Sandbox Code Playgroud)

但这会引发错误。第一个get()有效(并正确返回FormGroup),但是第二个get引发异常(path.split不是函数)

知道我该如何解决吗?

@更新

我现在用这种方式解决了(尽管这不是一个很好的解决方案):

formGroup.get(tab.id)['controls'][segment.id];
Run Code Online (Sandbox Code Playgroud)

Gre*_*nko 5

This should work: this.formGroup.get(varibaleKey).get(variableKey2)

Here is some code:

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit  {
  name = 'Angular 5';

  form: FormGroup;

  key1: string = 'test1';
  key2: string = 'test2';

  constructor(private formBuilder: FormBuilder) {}

  ngOnInit() {
    this.form = this.formBuilder.group({
      test1: this.formBuilder.group({
        test2: ['testValue']
      }),
      another: ['testValue']
    });
    console.log(this.form.get(this.key1).get(this.key2));
  }
}
Run Code Online (Sandbox Code Playgroud)

Here is an example: https://stackblitz.com/edit/angular-ipman8