gpt4 book ai didi

javascript - Backbone.js 集合获取,无法检索项目

转载 作者:行者123 更新时间:2023-11-28 16:07:41 25 4
gpt4 key购买 nike

我是 Backbone.js 的新手,我正在按照教程尝试使其适应我的需求。
我从主应用程序 View 调用 fetch 方法,以便检索要插入到集合中的多个对象。我可以在 chrome 中看到返回了 json 数据,获取函数返回成功,但未填充集合。

我正在使用 IcanHaz 进行渲染。它仅打印出我在作业模型中定义的默认模型。

 var Job = Backbone.Model.extend({
defaults: {
title: 'Not specified',
status: 0,
created_at: 'Not specified'
}
});


var JobView = Backbone.View.extend({
render: function () {
// template with ICanHaz.js (ich)
this.el = ich.jobRowTpl(this.model.toJSON());
return this;
}
});

// define the collection of jobs
var JobCollection = Backbone.Collection.extend({
model: Job,
url: '/api/1.0/jobs/'
});


// main app, the collection view
var AppView = Backbone.View.extend({
tagName: 'tbody',

initialize: function() {
this.jobs = new JobCollection();
this.jobs.on('all', this.render, this);
this.jobs.fetch({
error: function () {
console.log("error!!");
},
success: function () {
console.log("no error");
}
}).complete(function () {
console.log('done');
console.log('length1:' + this.jobs.length);
});
console.log('length2: '+ this.jobs.length);
},

render: function () {
this.jobs.each(function (job) {
var tmpjob = new JobView({model: job}).render().el;
$(this.el).append(tmpjob);
console.log('job': + this.tmpjob);
}, this);

return this;
}


});

var app = new AppView();
$('#app').append(app.render().el);

在 Chrome 控制台中我得到以下信息:

length2:0
job:undefined
no error
done
Uncaught TypeError: Cannot read property 'length' of undefined //referring to the lenght1 logging

这些是我从 network/xhr/response 下的 chrome 检查器获取的数据:

{"count": 2, "next": null, "previous": null, "results": [{"id": 1, "title": "testAlbum", "status": 0, "created_at": "2012-12-31"}, {"id": 2, "title": "testAlbum2", "status": 0, "created_at": "2012-12-31"}]}


我不明白为什么在调用 fetch 方法后“jobs”集合存在,但当调用“success”助手时它在 fetch block 内未定义。

尽管返回成功并且 json 数据从服务器返回,但为什么集合没有被填充?

我彻底迷失了。

最佳答案

向您的集合添加一个 parse 方法,该方法仅返回 results 数组。集合必须是模型数组,而不是整个 JSON 响应。

Backbone docs解释如何使用parse

关于javascript - Backbone.js 集合获取,无法检索项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207378/

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