Angular4 以降でコンポーネント間をまたいだデータ連携を実現するサービスクラスを作る
Angular4 以降で、@Input
や @Output
を使わず、コンポーネント間をまたいでデータのやり取りを行うためのサービスクラスを作った。
Angular におけるサービスクラスはシングルトンで動作するので、このサービスクラスをルートモジュールで provide しておき、サービスクラスでデータを保持するようにしておけば、配下のコンポーネントクラス同士でデータのやり取りができる、というワケ。
データを送りたい時は、データとそれを特定するキーを指定して send()
メソッドを叩き、データを受信したい時はキーを指定して receive()
メソッドを呼び、subscribe()
しておけば、データが送られた瞬間に受け取ることができる。