4

ここで説明として requirejs を使用してカスタム ベント イベント アグリゲーター インスタンスを実装したい

こことドキュメントの例を見ると、vent.on と vent.trigger の呼び出しが主にビューで使用されていることがわかりました。私のパターンは次のようになります。

define(['marionette', 'vent'], function (Marionette, vent) {
    return Marionette.ItemView.extend({
        initialize: function () {
           //bind
           this.listenTo(vent, 'mycustomevent', this.myMethod);
           //trigger
           vent.trigger('viewinit', ...);
        }
    });
});

このパターンは正しいですか (ビューはアグリゲーター イベントの管理を担当します)、それともモデルとコレクションで使用する必要がありますか?

4

1 に答える 1

5

イベント アグリゲーターは、実際には通信用の pub/sub システムにすぎません。

「何をどこに置くべきか」に関しては、ほとんどの場合、次のことをお勧めします。

  • ビューはイベントをトリガーします(ユーザーがクリックしたものなどに応じて)
  • コントローラーはイベントをリッスンして反応します (モデルの削除など)

もちろん、イベント アグリゲーターを使用する方法は多数ありますが、ビューを処理する場合は、上記の方法がほとんどのユース ケースに適合します。

イベント アグリゲーターを使用すると、ルーティング イベントを管理し、重複を削除することもできます (こちらのセクション「ルーティングの実装」を参照してください: http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf ) 。

于 2013-05-21T09:51:30.137 に答える