有没有办法将两种情况分开来渲染emptyView?
1.刚刚创建CollectionView时。该系列仍然是空的
2.获取集合但数据为空。
_CollectionView = Backbone.Marionette.CollectionView.extend({
emptyView: _EmptyView,
itemView: _ItemView,
initialize: function () {
this.collection = new Backbone.Collection ();
this.collection.fetch();
},//initialize
});
答案 0 :(得分:2)
这是我过去这样做的方式。将'emptyView'设置为加载视图,然后在集合同步后,将'emptyView'设置为实际的EmptyView(如果需要)。我也在'onBeforeRender'中使用了这个,如下例所示,如果已经使用'EmptyView'渲染了你可能需要重新渲染你的视图:
emptyView: LoadingView,
collectionEvents: {
'sync': 'onSync'
},
onSync: function () {
if(this.collection.length === 0) {
this.emptyView = EmptyView;
//may need to call 'this.render();' here if already rendered
}
}