私はangularjsでいくつかの簡単なことをやって遊んでいます。PubNub、PubSub、Pusherなどのリアルタイムメッセージングを組み込みたいと思いました。基本的には動作していますが、一部の領域では面倒すぎるようです。たぶんあなたは私にもっと良い方法を見せてくれるでしょう。
さて、これが私の動作中のjsfiddleです(pubsubが偽造されています)http://jsfiddle.net/canree/dD5VR/
外部サービス(pubsub
)があり、そのための角度サービスを作成しました。アプリの他の部分がこの具体的な実装に依存することを望まないので、送信されたinbox
すべてのメッセージを格納する別の部分()を作成することにしpubsub
ました。そして、これinbox
は私のアプリ全体の依存関係になります(ではなくpubsub
)。
だから私は私の依存関係を次のようにしたいと思います:
controller -> inbox -> pubsub
メッセージを受信したら、コントローラーがメッセージを認識してそれに応じて反応できるようpubsub
に、メッセージを追加する必要があります。inbox
問題は、この後方依存関係()が必要ないことですpubsub -> inbox
。pubsub
メッセージを受信したことをオブザーバーに通知したいと思います。
私が今持っているのは醜いコールバック登録です(受信トレイはpubsubにコールバックを登録します)。this
ボイラープレートがたくさんあるので(取り扱いなど)あまり好きではありません。
それらのサービスを接続する他の方法があるのだろうか?イベント(ただし、どこでも使用することを強制されることなく$rootScope
)?もしそうなら、そのようなイベントハンドラーをどこに登録しますか?サービスはイベントを受け取ることができますか?
提供されているフィドルを見て、それをより良い方法で解決する方法を教えてください。