gpt4 book ai didi

Backbone.js:在 PHP 中从服务器检索集合

转载 作者:行者123 更新时间:2023-12-01 12:49:38 26 4
gpt4 key购买 nike

我正在查看 Backbone.js,但我被卡住了。到目前为止的代码尽可能简单,但我似乎没有得到它。我在 MomentsView 的渲染中使用 Firebug,this.moments 是一个对象,但是集合中的所有方法都不起作用(即 this.moments.get(1) 不起作用)。

编码:

var Moment = Backbone.Model.extend({
});

var Moments = Backbone.Collection.extend({
model: Moment,
url: 'moments',
initialize: function() {
this.fetch();
}
});

var MomentsView = Backbone.View.extend({
el: $('body'),
initialize: function() {
_.bindAll(this, 'render');

this.moments = new Moments();
},
render: function() {
_.each(this.moments, function(moment) {
console.log(moment.get('id'));
});

return this;
}
})

var momentsview = new MomentsView();
momentsview.render();

来自 te 服务器的(虚拟)响应:
[{"id":"1","title":"this is the moment","description":"another descr","day":"12"},{"id":"2","title":"this is the mament","description":"onother dascr","day":"14"}]

根据 Firebug 中的 DOM,该对象有两个模型,但方法不起作用。有没有人知道如何让集合在 View 中工作?

最佳答案

这里的问题是你在初始化 MomentsView 时异步获取数据。查看,但您调用的是 momentsview.render()同步,马上。您期望的数据尚未从服务器返回,因此您会遇到问题。我相信,如果您在回调中调用 render 以执行一次 fetch(),这将起作用。完成了。

另外,我认为您不能调用 _.each(this.moments) - 要遍历集合,请使用 this.moments.each() .

关于Backbone.js:在 PHP 中从服务器检索集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786632/

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