2016-09-06 3 views
0

私は2つのフォームを持っています。 1つの親フォームと1つの子フォーム。親フォームのための私のコンポーネントは、このようになりますAngular2 - 別のフォームで実装されたフォーム - 値の取得方法

<form [formGroup]="form"> 
    <input type="text" formControlName="somechildfield" /> 
</form> 

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

@Component({ 
    selector: 'my-parent-form', 
    templateUrl: 'my-parent.form.html' 
}) 
export class ParentFormComponent implements OnInit { 
    private form: any; 

    constructor(private builder: FormBuilder) {} 

    ngOnInit(): void { 

     this.form = this.builder.group({ 
      'test': [''], 
     }); 
    } 
    makeSomething() { 
     console.log(this.form.value); 
    } 
} 

SomeFormComponentはちょうどmakeSomething方法なしに似見えます私はこのようなファイルを使用some-form-componentについて

<form [formGroup]="form" (submit)="makeSomething()"> 
    <input type="text" formControlName="test" /> 
    <some-form-component></some-form-component> 
    <input type="submit" /> 
</form> 

:それはこのようになります 私の質問は:makeSomething()メソッドで値を取得する方法は?

ありがとうございます!

+0

あなたの質問をしてみてください.......... – MMR

+0

こんにちは、私は質問を更新しました – crotoan

答えて

1

親では、子コンポーネントにformControlNameを指定し、子コンポーネントをformBuilderに組み込む必要があります。

 <my-child formControlName="account"></my-child> 

子供の場合、ControlValueAccessorインターフェイスを実装します。例えば

、あなたは正確にしてくださいすることができます混乱ビットでthis plunker

関連する問題