gpt4 book ai didi

collections - 主干_.each collection.model为空

转载 作者:行者123 更新时间:2023-12-03 07:45:40 26 4
gpt4 key购买 nike

我试图简单地将我在 PHP 中请求的内容返回到 JSON。我的问题是每个库存尚未完成。事实上,它是“渲染”,但“this.collection.models”尚未完成,因为请求尚未完成。

我应该如何解决这个问题,等到请求完成以便循环正确完成。

提前谢谢

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。现在,当 fetch 完成时,您如何收到通知?您有 2 个选择:

The success function (本人不推荐)

// ArticlesView
initialize: function() {
_.bindAll(this); // Don't forget to BIND
this.collection = new Articles();
this.collection.fetch({
success: this.render
});
}

现在,当获取成功时,将调用 render。然而,这可能会导致范围问题,并且 Backbone.js 提供了回调函数的更好替代方案:事件

Event callback (更喜欢这个)

// ArticlesView
initialize: function() {
_.bindAll(this);
this.collection = new Articles();
this.collection.on('reset', this.render); // bind the reset event to render
this.collection.fetch();
}

关于collections - 主干_.each collection.model为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12295981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com