Backbone Marionette emptyView模板被添加到DOM两次

时间:2012-07-18 22:33:56

标签: backbone.js marionette

当复合视图的集合没有模型时,我使用带有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标记,其中包含一些文本。

关于可能导致这种情况的任何想法?

1 个答案:

答案 0 :(得分:4)

这是v0.9.3版本中的已知错误,并在即将发布的v0.9.4版本中得到修复。

如果您想立即获取该修补程序,那么该修补程序目前在dev分支中作为发布预览https://github.com/derickbailey/backbone.marionette/tree/dev

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