2

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

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

如果它的集合为空,我如何不呈现此复合视图?

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

4

2 回答 2

4

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

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

当前分数

异步:23,我:0

异步获胜!

于 2013-06-08T01:01:07.050 回答
0

从文档:

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

所以传递{reset: true}fetch(),所以集合会自动重新渲染:

initialize: function() {
    this.collection = this.model.things;
    this.collection.fetch({reset: true});
}
于 2013-12-26T09:05:29.200 回答