有没有办法将两种情况分开来渲染emptyView?

时间:2013-03-11 01:33:11

标签: marionette

有没有办法将两种情况分开来渲染emptyView?
1.刚刚创建CollectionView时。该系列仍然是空的 2.获取集合但数据为空。

_CollectionView = Backbone.Marionette.CollectionView.extend({
    emptyView: _EmptyView,
    itemView: _ItemView,
    initialize: function () {
        this.collection =  new Backbone.Collection ();
        this.collection.fetch();
    },//initialize

});

1 个答案:

答案 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
    }
}