2017-12-01 11 views
0

1)@Outputを使用してイベントを発行する子コンポーネント(CounterComponent)があります。 2)子コンポーネントには、入力パラメータcallBackCancelledもあります。 3)親コンポーネント(AppComponent)はcallBackCancelled値を "true"に設定しますが、値が未定義の子コンポーネント内に設定します。親子コンポーネントの相互作用 - EventEmitterのangle2を使用した戻り値

はplunkerサンプルに https://plnkr.co/edit/2vnTUEDyBKT59GDTvkEJ

callbackFunction(e) { 
alert('emitting event from child callback button component'); 
this.callback.emit(e); 

alert('Now in child component, this value should be true, but it is: ' + this.callBackCancelled); 

}

を参照してください誰かが助けることができますか?

+0

this.callBackCancelledは、ngOnChangesライフサイクルフックでtrueになります。また、「callBackCancelled」の出力がないので、それを使用する必要があります。 [callBackCancelled]を角かっこなしで使用してください。 – omeralper

答えて

0

実際には、このalert('Now in child component, this value should be true, but it is: ' + this.callBackCancelled);は以下の前に呼び出されます:

btncallback(event) { 
    console.log(event); 
    this.callBackCancelled = event; 
    alert('Parent component sets the callBackCancelled value to true.'); 
    } 

ので、その時点で、this.callBackCancelledはまだ定義されていません。これを動作させるにはいくつかの方法があります。

  1. Aサービス
  2. ngOnChanges()

を実装ここでは、後者の例です:[(callBackCancelled)]

  • から()を取り除く

    1. は、次のように実装しています:https://plnkr.co/edit/qDG0dK01USbN1ifVFXvl?p=info
  • 関連する問題