2

コレクション ビューとそのサブビューが完全にレンダリングされるまで、読み込みメッセージを表示したいと思います。

4

2 に答える 2

1

emptyViewコレクションにアイテムが含まれていない場合にレンダリングするように指定できます。コレクションビューはこれを自動的に処理します。コレクションがゼロアイテムにドロップするのを見ると、代わりにこれをレンダリングします。これを使用して、「読み込み中」のメッセージを表示します。


LoadingMessageView = Backbone.ItemView.extend({
  template: "#loading-message-template"
});

ItemView = Backbone.ItemView.extend({
  template: "#normal-item-view"
});

MyCollectionView = Backbone.CollectionView.extend({
  emptyView: LoadingMessageView,
  itemView: ItemView
});

次に、コードで、まだロードされていないコレクションをビューに渡し、表示してからロードすることができます。


var col = new MyCollection();
var colView = new MyCollectionView({
  collection: col
});

App.someRegion.show(colView);

col.fetch();

これにより、コレクションビューがレンダリングおよび表示され、emptyView最初からの読み込みメッセージが表示されます。コレクションがフェッチを終了すると、「リセット」イベントがトリガーされ、コレクションビューがすべてのアイテムで再レンダリングされます。

于 2012-08-09T13:02:50.577 に答える
0

これと同じくらい簡単にできますか?

// code simplified no tested
var MyCollectionView = Backbone.View.extend({
  render: function(){
    $("#loading").show();
    // render stuff
    $("#loading").hide();
  }
});

何か不足していますか?

于 2012-08-09T10:46:38.037 に答える