有没有一种方法可以分开两种情况来呈现emptyView?
1.刚创建CollectionView时。集合仍为空
2.在获取收集后但数据为空。
_CollectionView = Backbone.Marionette.CollectionView.extend({
emptyView: _EmptyView,
itemView: _ItemView,
initialize: function () {
this.collection = new Backbone.Collection ();
this.collection.fetch();
},//initialize
});
最佳答案
这就是我过去所做的方式。将“emptyView”设置为加载 View ,然后在同步集合后,根据需要将“emptyView”设置为实际的EmptyView。我还在'onBeforeRender'中使用了它,如下面的示例所示,如果已经使用'EmptyView'渲染了 View ,则可能需要重新渲染它:
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
}
}