3

複合ビューのコレクションにモデルがない場合、emptyView プロパティを持つ Marionette 複合ビューを使用して単純なテンプレートをレンダリングしています。emptyView はアプリの複数の場所で正常に動作しますが、何らかの理由で、emptyView がページ上で 2 回レンダリングされているビューが 1 つあります。

私の最初の考えは、ビューが再レンダリングされ、コレクションが同期されたときにそれ自体を削除しないということでした。初期化関数の console.log は、初期化が一度しか呼び出されていないことを明らかにしています。

class AllLists extends Backbone.Marionette.CompositeView
  itemView: List
  emptyView: NoLists
  template: AllListsTemplate
  className: 'lists'

  initialize: (options) ->
    @collection.fetch()
    console.log 'lists ', @collection, @model

class NoLists extends Backbone.Marionette.ItemView
  template: NoListsTemplate
  tagName: 'li'
  className: 'no-lists'

ご覧のとおり、ここではあまりおかしなことは何も起こっていません。空のリスト テンプレートは、テキストが含まれる単純な h4 タグです。

これを引き起こしている可能性のあるものについてのアイデアはありますか?

4

1 に答える 1

4

これは v0.9.3 リリースの既知のバグであり、今後の v0.9.4 リリースで修正されます。

修正は現在、リリース プレビューとして dev ブランチにあります。今すぐ入手したい場合はhttps://github.com/derickbailey/backbone.marionette/tree/dev

そして、そのうちの 1 つからコードを使用してバージョンにパッチを適用したい場合に、修正を提供するいくつかのプル リクエストがあります: https://github.com/derickbailey/backbone.marionette/pull/175

于 2012-07-19T14:39:59.383 に答える