我有一个 CompositeView,我在初始化时获取它的集合。
initialize: function() {
this.collection = this.model.things;
this.collection.fetch();
},
如果它的集合为空,我如何不呈现此复合视图?
我知道EmptyView
,但这仍然呈现复合视图的模板。如果集合为空,我不想渲染任何东西。
我有一个 CompositeView,我在初始化时获取它的集合。
initialize: function() {
this.collection = this.model.things;
this.collection.fetch();
},
如果它的集合为空,我如何不呈现此复合视图?
我知道EmptyView
,但这仍然呈现复合视图的模板。如果集合为空,我不想渲染任何东西。
答案最终是在fetch
' 的延迟对象返回后渲染复合视图。
initialize: function() {
var self = this;
this.collection = this.model.localFoods;
this.collection.fetch().then(function() {
self.render();
});
}
当前分数
异步:23,我:0
异步获胜!
从文档:
当集合的“reset”事件被触发时,它只会在组合中重新渲染集合,而不是包装模板
所以传递{reset: true}
给fetch()
,所以集合会自动重新渲染:
initialize: function() {
this.collection = this.model.things;
this.collection.fetch({reset: true});
}