1

参照URL:http ://davidsulc.com/blog/2012/04/22/a-simple-backbone-marionette-tutorial-part-2/

私はバックボーンとイベントアグリゲーターにナイーブです。次のコード行を使用する理由を教えてください。

this.model.addVote(); MyApp.vent.trigger( "rank:down"、this.model);

他の可能性があるようです

this.model.addVote(); this.model(rankDown);

または他の方法MyApp.vent.trigger( "addVote"、this.model

親切に感謝を説明してください。

実行中のサンプル:http://jsfiddle.net/Irfanmunir/966pG/29/

4

1 に答える 1

3

一般に、イベントは、オブジェクト同士の通信を可能にしながら、オブジェクトを互いに切り離すのに役立ちます。アプリケーション レベルでのイベント アグリゲーター パターン (または pub/sub パターン) では、パブリッシャー、アグリゲーター、サブスクライバーなどのサード パーティを混在させることで、さらに分離することができます。このように、パブリッシャーもサブスクライバーもお互いを知る必要はありません。それぞれがイベント アグリゲーターについてのみ知っています。

私はこれについて少し前に小さな記事を書きました:

http://lostechies.com/derickbailey/2012/04/03/revisiting-the-backbone-event-aggregator-lessons-learned/

この場合、モデルが属するコレクションのコンテキストでモデルを操作する必要があるため、イベントが使用されます。モデルを介してコレクションに到達するよりも (直接割り当てられていない可能性があります... モデルはコレクションの一部である必要はありません)、このイベントを発生させて別の場所で処理する方が簡単で柔軟です。適切な。

于 2012-06-20T13:22:48.910 に答える