Collections 主干网u.each collection.model为空
我试图简单地将PHP中的请求返回到JSON。 我的问题是每只股票都还没有完成。 实际上,它是“呈现”,但“this.collection.models”尚未完成,因为请求尚未完成 我应该做些什么来纠正这个问题,等待请求完成,以便正确地完成循环 先谢谢你Collections 主干网u.each collection.model为空,collections,backbone.js,model,Collections,Backbone.js,Model,我试图简单地将PHP中的请求返回到JSON。 我的问题是每只股票都还没有完成。 实际上,它是“呈现”,但“this.collection.models”尚未完成,因为请求尚未完成 我应该做些什么来纠正这个问题,等待请求完成,以便正确地完成循环 先谢谢你 var Article = Backbone.Model.extend({}); var Articles = Backbone.Collection.extend({ model:Article, url: function(
var Article = Backbone.Model.extend({});
var Articles = Backbone.Collection.extend({
model:Article,
url: function() {
return _BASE_URL+'/sync/getLastArticles';
},
initialize:function () {
this.fetch();
}
});
var ArticlesView = Backbone.View.extend({
template:$('#articles').html(),
initialize:function () {
this.collection = new Articles();
this.render();
},
render:function () {
console.log(this.collection);
var that = this;
_.each(this.collection.models, function (item) {
console.log(item);
}, this);
},
renderArticle:function () {
;
}
});
在执行
提取操作之前,您需要进行渲染
。您要做的是等待获取
完成,然后渲染
。现在,您将如何获得fetch
完成时的通知?您有两种选择:
(我不推荐)
现在,当获取成功后,将调用render
。但是,这可能会导致范围问题,Backbone.js提供了回调函数更好的替代方法:事件
(更喜欢这个)
// ArticlesView
initialize: function() {
_.bindAll(this); // Don't forget to BIND
this.collection = new Articles();
this.collection.fetch({
success: this.render
});
}
// ArticlesView
initialize: function() {
_.bindAll(this);
this.collection = new Articles();
this.collection.on('reset', this.render); // bind the reset event to render
this.collection.fetch();
}