2017-12-22 15 views
1

私は2つのコンポーネント:parentComponentchildComponentを持っています。私はこれらのコードを実行すると参照によって親コンポーネントから子コンポーネントに値を渡す

export class parentComponent { 
... 

parentForm: FormGroup; 

.... 
} 

export class childComponent { 
... 

@Input() 
childForm :FormGroup; //The parentForm 

.... 
} 

すべてがOKであると私childComponentparentComponentからの入力値であるchildFormを認識するが、いつでも、私は変更:parentComponentで私は@input経由childComponentに渡されparentFormとしてFormGroup型の値を持っていますparentFormのいくつかのプロパティーがparentComponentにあります。childComponentはこれらの変更を認識することができません。私のコードをデバッグすると、childComponentは古い入力値を保持しており、変更はchildFormchildComponentに更新されません。今私はparentFormの参照を渡して私の問題を解決する方法を模索しています。私はこのように考えているので、parentFormの変更はすぐにchildFormに通知します。 どうすれば可能かわかりません。 (Angularのバージョンは5.0.1です)

+1

https://stackblitz.com/edit/angular-lk4j8t:私はあなたが探している動作がわかりませんが、私は間違いなく 'childForm'にも変更を加えました。このスタックブリッツを見てみましょう。あなたの 'childComponent'でも' this.childForm.valueChanges'を試してみることができます。 –

答えて

0

本質的に、この質問はthis questionthis another questionと非常に関連しています。

  • ディレクティブNgModelを使用して、フォーム・グループを使用して使用してオブジェクトを入力します。

    はあなたの問題を解決するために、私はこのアプローチを示唆しています。 @Input() childForm : Objectため
  • 変更@Input() childForm :FormGroupNgModel
  • を使用して塗りつぶされたオブジェクトのクラスを対象となるObjectはプリミティブ値stringbooleannumでない場合は、すぐに更新された値を持つことになりますので、それは参照によって渡されます。
関連する問題