我正在使用Backbone开发一个新的应用程序,并且还没有编写后端API,所以我正在尝试使用我项目本地的JSON数据文件。我将其位置设置为urlRoot,并且能够获取它并接收jqXHR对象。但是,我不确定如何与responseText进行交互(假设我需要的是基于对象的console.log输出)。
这是我发现的最接近我的问题,但最终答案没有结束:backbone model is only returning and object, or JSON {readyState : 1}
var JobListings = Backbone.Model.extend({
urlRoot: 'scripts/app/data/listings.json'
});
// Instantiate the model
var jobListings = new JobListings();
console.log(jobListings.fetch()); // Returns jqXHR object
console.log(jobListings.attributes); // Returns empty object
如何获取我的JSON数据?此外,它应该在模型中而不是集合中吗?关于基于其他开发人员使用它们的集合的作用,我有点模糊。我认为模型包含数据和集合是模型集。
我的目标是为数据构建两个模型。一个接受需要清理的脏JSON,第二个是我输出的干净数据供应用程序使用。非常感谢任何帮助。
编辑:
我的JSON的片段......我仍然没有运气如何获取我的数据。我确信我不必亲眼看到我的数据。
[
{
"jobId": "1",
"applyUrl": "http://google.com",
"title": "President of the World",
"trackingCode": "1",
"jobDescription": "Stuff",
"requiredSkills": "Stuff",
"requiredExperience": [],
"postingDate": "2013-07-12T11:07:50Z",
"jobLocation": {
"countryCode": "US",
"region": "California",
"municipality": "Santa Monica"
},
"category": "Life",
"businessUnit": [],
"positionType": "Full-Time"
}
]
答案 0 :(得分:1)
'Backbone.Model'包含数据
'Backbone.Collection'是一组模型。就像你可以在下面定义它一样:
var Library = Backbone.Collection.extend({
model: Book
});
您通常无法直接使用jqXHR。 获取数据后,您可以使用get操作“逐个字段”(或逐个属性)访问它:
note.get("title")
您可以使用set操作编辑数据:
note.set({title: "March 20", content: "In his eyes she eclipses..."});
book.set("title", "A Scandal in Bohemia");
您可以使用toJSON操作
返回数据副本(称为属性)Backbone也会使用hasChanged
跟踪数据是否脏答案 1 :(得分:0)
查看您的代码,JobListing将是一个包含工作列表数据的模型。 JobListings将是所有JobListing模型的集合:
var JobListing = Backbone.Model.extend();
var JobListings = Backbone.Collection.extend({,
model: JobListing,
url: 'scripts/app/data/listings.json',
parse: function(data) {
// Not sure about your json structure, but you could do the following
// Do your cleanup here
return data.joblistings;
}
});
// Instantiate the collection
var jobListings = new JobListings();
var req = jobListings.fetch();
req.done(function() {
// contains all job listings
console.log(jobListings.models);
});