3

当复合视图的集合没有模型时,我使用带有 emptyView 属性的 Marionette 复合视图来呈现简单模板。emptyView 在我的应用程序的多个位置都可以正常工作,但由于某种原因,在一个视图中,emptyView 在页面上呈现了两次。

我最初的想法是视图正在重新渲染,而不是在同步集合时自行删除。初始化函数中的 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

如果您想使用其中之一的代码修补您的版本,则有一些拉取请求提供了修复: https ://github.com/derickbailey/backbone.marionette/pull/175

于 2012-07-19T14:39:59.383 回答