10

特定のプロパティが関連付けられMarionette.ItemViewていないビュークラスに使用するのが一般的ですか?model

Marionette.View直接使用することを意図していないため、便利なデフォルトとバインディングを備えたビュークラスとしては理にかなっているようですItemView

または、使用するだけでよいのBackbone.Viewでしょうか。もしそうなら、Backbone.Viewマリオネットのイベントされガベージコレクションされたアーキテクチャにフックする方法はありますか?

ご説明ありがとうございます!

4

2 に答える 2

18

ItemViewは、モデルなしで使用できます。私はこれをかなり定期的に行っています。

ItemViewのデータを指定する必要があるが、Backbone.Modelにそのデータがない場合は、serializeDataメソッドをオーバーライドする必要があります。


MyView = Marionette.ItemView.extend({
  serializeData: function(){
    return {
      my: "custom data"
    };
  }
});

ベースのMarionette.Viewは、それ自体ではレンダリング機能を提供しないため、直接使用することを意図したものではありません。ただし、これを使用して独自のベースビュータイプを作成できないわけではありません。たとえば、Googleマップやサードパーティのウィジェットなど、ItemViewにある一般的なBackbone.Modelベースのレンダリングを必要としないレンダリングを処理するアプリケーションのビュータイプを作成できます。

于 2012-12-03T15:49:41.067 に答える
1

これには templateHelper を使用できることがわかりました-これを ItemView 宣言に入れるだけです:

templateHelpers: function() {
    return {
        message: this.message,
        cssClass: this.cssClass
    }
}

そして、あなたのテンプレートで:

<script type="text/html" id="notice-template">
    <span class="<%= cssClass %>"><%= message %></span>
</script>

そして、ビューを初期化すると:

var noticeView = new App.Views.Notice();
noticeView.message = "HELLO";
App.noticeRegion.show(noticeView);

このデリックについてのあなたの考えに興味がありますか?

于 2012-12-05T13:39:30.223 に答える