2

アーキテクチャ的に言えば、コントローラーは(通常は)ビューを認識せず、他のコントローラーのビューについても認識しません。コントローラーは他のコントローラーについても知りません。これらの緩く結合されたコンポーネントが通信できるようにする必要がある場合もありますが、ベストプラクティスはそれらを緊密に結合しないことです。さまざまなコンポーネントがアプリ内でグローバルメッセージを送受信できるようにするメッセージングフレームワークプラグインはありますか?これらの種類の通信を処理するためのより良い方法はありますか?

4

2 に答える 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 に答える