Backbone Marionette:如果集合为空,则不渲染复合视图

时间:2013-06-07 21:56:51

标签: backbone.js marionette backbone-views

我有一个CompositeView,我在初始化时获取它的集合。

  initialize: function() {
    this.collection = this.model.things;
    this.collection.fetch();
  },

如果 它的集合为空,我该如何渲染它?

我知道EmptyView,但仍然会呈现复合视图的模板。如果集合是空的,我想不渲染任何东西。

2 个答案:

答案 0 :(得分:4)

答案最终是在fetch的延迟对象返回后呈现复合视图。

initialize: function() {
  var self = this;
  this.collection = this.model.localFoods;
  this.collection.fetch().then(function() {
    self.render();
  });
}

当前得分

async:23,me:0

异步获胜!

答案 1 :(得分:0)

来自文档:

  

当集合的“重置”事件被触发时,它只会重新渲染   复合中的集合,而不是包装器模板

因此将{reset: true}传递给fetch(),因此系统会自动重新呈现:

initialize: function() {
    this.collection = this.model.things;
    this.collection.fetch({reset: true});
}