2017-11-29 14 views
0

FormGroupを別のFormGroupにネストしています。ここでget()で特定のコントロールを取得します。ネストされたフォームグループからコントロールを取得する

私は動作しません下記の溶液、試してみました:

formGroup.get('formGroupKey').get('formControlKey'); 

をしかし、これはエラーをスローします。最初のget()は正常に動作し、FormGroupを正しく返しますが、2番目のgetは例外をスローします(path.splitは関数ではありません)

どのように解決できますか?

@Update

私は今、(かなりかかわらずソリューションではありません)このように、それを解決:

formGroup.get(tab.id)['controls'][segment.id]; 
+1

formGroupName.get( 'formGroupKey.formGroupKey') – fastAsTortoise

+0

あなたの答えをありがとう!キーが変数(オブジェクト)そのものなので、残念なことにその解決策は私のためには機能しません。最初のキーは 'tab.id'で、2番目のキーは 'segment.id'です。他の解決策はありますか? – dave0688

+0

クラスコードを追加できますか? – fastAsTortoise

答えて

0

これは動作するはずです:

:ここ this.formGroup.get(varibaleKey).get(variableKey2)

はいくつかのコードです

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)); 
    } 
} 

ここに例を示します。https://stackblitz.com/edit/angular-ipman8

関連する問題