1

Backbone + Marionette.js を使用して、1 つのページに同じウィジェットを複数回表示する UI に取り組んでいます。各ウィジェット内にイベントを含める最良の方法に苦労しています。各ウィジェットが、選択した友人の Facebook 情報 (興味、ステータス フィード、共通の友人) を表示するとします。ユーザーが特定のウィジェットの選択したフレンドを変更した場合、そのウィジェットの一部であるモデルを更新する最良の方法は何でしょうか?

これを解決するために私が考えている方法は次のとおりです...

設定モデルの作成 - ユーザーがウィジェット内で別のフレンドを選択すると、フレンド選択ビューが設定モデルを更新します。

アプローチ 1: コントローラーは、「変更」イベントで設定モデルをリッスンし、関連するすべてのモデルを更新します。各モデルは設定モデルを知ることはありません。

アプローチ 2: 設定モデルを各モデルのオプションに渡し、各モデルは設定モデルをリッスンし、変更時に必要なこと (リロードなど) を行います。

これらは私の頭に浮かぶ2つのアプローチです。Approach 1の方が気に入っているように感じますが、Backboneを同じように使用したことがある人からのフィードバックをいただければ幸いです.

ありがとう、ハビール

4

2 に答える 2

0

あなたが提案したように、シングルトン設定モデルを使用してアプローチ2に進みます。そうすれば、設定をリッスンするビューまたはモデルが更新を担当します。アプローチ 1 には 2 つの潜在的な落とし穴があります。コントローラーに実際に起こることのロジックを移動すると、複雑で複雑になる可能性があります。コントローラーが設定モデルの変更イベントに反応し、それらを他のモデルやビューに伝播するだけの場合、それが存在する理由はほとんどないようです。

于 2013-09-17T18:37:03.850 に答える
0

もう 1 つのアプローチは、Marionette のイベント アグリゲーター機能を利用することです。これにより、設定モデルさえ必要なくなります。代わりに、変更されたモデルに、他のモデルがリッスンしているグローバル イベントを発生させ、それに応じて調整するだけです。

于 2013-09-17T20:47:58.160 に答える