Angularでcomponent間通信しようと思いました。
これまで一つにしていたcontrol formとそれをはんえいするimage viewを
別componentにして、その間で情報伝達したり、
あるtimingで他方のfunctionを叩いたり、
とかしたくなるわけですね。
コンポーネント間のデータ授受メモとかAngular2でComponentをまたがったデータのやり取りとかコンポーネント間でデータを共有するとかちょっと調べればもう色々書いてあって、
親子だとどうとか兄弟間だとこうとかあるわけです。
今回は兄弟間だったので間を取り持つService作って兄から書いて弟で読むとかその逆とかやってたんですが、
ngx-storeの@SharedStorage
使えば一発ですよそんなの。
最初から知ってればもっともっと簡単に済んだのに。
JHipsterでは
ngx-webstorageが
予め入っているのでこれを使えればいいんでしょうけど、
this.$sessionStorage.store('key', 'value')
して
this.$sessionStorage.retrieve('key')
取り出すというように、
ngx-store
と比べてちょっと面倒です。
っていうか、JHipsterでもngx-store
使ってくれればよかったのに。
Local Storageにも保存できますし、ってそれはどちらも同じですが、
ngx-store
の方は特にstore/retrieveとかしなくても、
意識しなくても変数に@SharedStorage
とか@LocalStorage
とすれば
他のcomponentでも変更された値がそのまま参照できるというスグレモノです。
全部これ使えばいーんですよ。