私はこの答えに従おうとしましたが、兄弟コンポーネント間のAngular 2イベントキャッチがあまりにも混乱しています
子コンポーネント 2で何かがクリックされたときに、子コンポーネント 1のメソッドを呼び出したい
子コンポーネント 2 は、trackClick というイベントを発行します。
親コンポーネント:
<div>
<audio-player></audio-player>
<audio-albums></audio-albums>
</div>
子コンポーネント 1 (オーディオ プレーヤー)
// Don't know what to do here, want to call this function
trackChanged(track){
console.log("YES!! " + track);
}
子コンポーネント 2 (オーディオ アルバム)
<li class="track" (click)="playTrack(track)"> </li>
@Output() trackClick = new EventEmitter<any>();
playTrack(track):void{
console.log("calling playTrack from child 2:" + track);
this.trackClick.next([track]);
}