2016-12-21 3 views
3

@Input@Outputを頭に入れようとしていて、私のアプローチが間違っていることを示唆していました。 app.component親コンポーネントで@ Inputと@Outputを使ったカスタムイベント

Iは

@Output() dateChanged = new EventEmitter(); 
dateSelected:any; 

onDateSelected() { 
    this.dateSelected = this.yearValue + "|" + this.monthValue; 
    console.log(this.dateSelected);//is selected and prints out to console 
    this.dateChanged.emit(this.dateSelected); 
} 

以下たこの子(ExpensesComponent)成分のHTML

<div> 
<!--app.component.html--> 

     <app-expenses (dateChanged)="onDateSelected($event)"></app-expenses> 
</div> 

子コンポーネント が従う

@Input() dateChanged: any; 

onDateSelected(e) { 
    console.log(e);//doesnt reach this point 
} 
ようであります

onDateSelectedは0123の発火しませんこの日付の値を子供に渡す良い方法は何ですか?親が子コンポーネントではなく、他の方法で回避のイベントをリッスンするため

おかげ

+1

あなたのコードから、親と子供は何であるかはっきりしません。私には ''は子かもしれないし、 ''は親かもしれないが、あなたの質問は意味をなさない。子がイベントを送出した場合、なぜイベントが受信されたときに子に対して 'onDateSelected'が呼び出されるのでしょうか? –

答えて

1

@Output()のイベントがあります。

親子通信の場合は、データバインディングを使用できます。

<app-expenses [selectedDateInChild]="selectedDateOfParent"></app-expenses> 
+0

ありがとうございました。その日付を値として渡す親から子コンポーネント内の関数を呼び出すことは可能ですか? – Arianule

+0

'selectedDateInChild'をセッターにして、' selectedDateOfParent'が変更されるたびにセッターのコードが実行されます –

+1

私はあなたと一緒です...今、私はそれを得ます、ありがとう – Arianule

関連する問題