3

emptyViewをレンダリングするために2つのケースを分離する方法はありますか?
1.CollectionViewが作成されたばかりの場合。コレクションはまだ空です
。2。コレクションがフェッチされた後、データは空です。

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

});
4

1 に答える 1

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
    }
}
于 2013-03-11T03:15:04.400 に答える