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最初的加载消息。当集合完成获取时,“reset”事件将触发,集合视图将重新呈现所有项目。

于 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 回答