我知道主干文档说 fetch 不应该用于在页面加载时填充集合,我有点明白为什么:
var appCollection = Backbone.Collection.extend({
model:appModel,
url:'api/app',
initialize:function(){
this.fetch();
},
});
var homeView = Backbone.View.extend({
el:'#content',
initialize:function(){
this.collection = new appCollection(appModel)
this.render()
},
render: function () {
var that = this;
alert(1);
_.each(this.collection.models, function (item) {
that.renderApp(item);
}, this);
},
renderApp: function (item) {
var appview = new appView({
model: item
});
this.$el.append(appview.render().el);
}
})
var home = new homeView();
homeview.render 函数实际上在获取集合之前被调用,所以当我删除警报(1)时;我的应用程序不会被渲染,并且我收到一些错误,说“appname”(模板)未定义。
知道怎么做吗?
fetch 方法非常方便,我不介意等待几秒钟,实际上我打算显示一个进度条指示页面正在初始化,因为我还有很多其他东西要下载,所以可以使用 fetch 和当集合被实际提取时,代码继续运行???