Angular4 以降でコンポーネント間をまたいだデータ連携を実現するサービスクラスを作る

Angular4 以降で、@Input@Output を使わず、コンポーネント間をまたいでデータのやり取りを行うためのサービスクラスを作った。

Angular におけるサービスクラスはシングルトンで動作するので、このサービスクラスをルートモジュールで provide しておき、サービスクラスでデータを保持するようにしておけば、配下のコンポーネントクラス同士でデータのやり取りができる、というワケ。

データを送りたい時は、データとそれを特定するキーを指定して send() メソッドを叩き、データを受信したい時はキーを指定して receive() メソッドを呼び、subscribe() しておけば、データが送られた瞬間に受け取ることができる。