アーキテクチャ的に言えば、コントローラーは(通常は)ビューを認識せず、他のコントローラーのビューについても認識しません。コントローラーは他のコントローラーについても知りません。これらの緩く結合されたコンポーネントが通信できるようにする必要がある場合もありますが、ベストプラクティスはそれらを緊密に結合しないことです。さまざまなコンポーネントがアプリ内でグローバルメッセージを送受信できるようにするメッセージングフレームワークプラグインはありますか?これらの種類の通信を処理するためのより良い方法はありますか?
質問する
875 次
2 に答える
3
jQuery.Callbacksのようなものを使用してpub/subハブを作成することはそれほど難しくありません。ただし、これは一般的なEmber.jsアプリの一部ではありません。
担当コントローラーの範囲を超えて通信する必要がある何かが発生した場合、パターンは、現在の状態がそれを処理できるルーターにアクションを送信することです。router / stateManagerはアプリのコーディネーターであり、他のコントローラーやモデルにメッセージを送信したり、別の状態に移行したりすることで、アクションに応答できます。
私は最近行った講演でこれを図解しようとしました:http ://www.lukemelia.com/devblog/archives/2012/08/23/architecting-ember-js-apps/
于 2012-10-11T02:43:33.143 に答える
1
私はまだEmberを初めて使用しますが、この場合、Ember Instrumentationは役に立ちませんか?カスタムイベントをパブリッシュおよびサブスクライブできます。この答えには素晴らしい説明があります。
于 2013-02-18T21:57:36.783 に答える