主干从特定的Json属性创建集合
我很难理解主干集合是如何映射外部json文件的……如果您有一种json,并且您只从该json的特定区域创建模型,那么您是如何做到的主干从特定的Json属性创建集合,json,parsing,backbone.js,collections,Json,Parsing,Backbone.js,Collections,我很难理解主干集合是如何映射外部json文件的……如果您有一种json,并且您只从该json的特定区域创建模型,那么您是如何做到的 var Comic = Backbone.Model.extend(); var ComicCollection = Backbone.Collection.extend({ url: 'http://www.theurlofthejson.com', parse: fu
var Comic = Backbone.Model.extend();
var ComicCollection = Backbone.Collection.extend({
url: 'http://www.theurlofthejson.com',
parse: function (response) {
return response.comicsbooks;
},
model: Comic,
});
如果这样,我将创建一个集合
var comicCollection = new ComicsCollection();
如果有人做了这个
console.log(comicCollection.fetch())
它将返回未在comicsbooks级别解析的整个json
为什么要获取json对象的整个结构,而不仅仅是comicbooks属性
我的问题基于此,但实施/解决方案不适合我
抱歉,我错过了所附url的json响应示例:
{
"status": "ok",
"count": 1,
"count_total": 4,
"pages": 4,
"comicsbooks": [
{
"id": 363,
"type": "american_comics",
"status": "publish",
"title": "Popeye"
}
]
}
您的
parse
方法错误。看起来您正在覆盖Comic
模型变量。如果您只希望comicbooks
属性组成您的收藏,请执行以下操作:
parse: function(response){
return response.comicbooks;
}
是的,我覆盖了漫画模型,但这对我来说(单独)有效。事实上,这不是一个好的解决方案,因为我需要创建一个模型,然后覆盖它……这是告诉集合她必须只映射json响应的一个属性的正确方法?这可能对您很有用,但这样做没有意义。为什么要将
response.comicbooks
分配给Comic
Comic
是一个主干模型,response.comicbooks
是您想要注入到集合中的原始JSON,只需返回response.comicbooks
。主干将负责其余部分,就像从服务器响应中的comicbooks
数组中的每个对象在集合中创建模型一样。事实上,您最后评论的是“主干将负责其余部分,就像从服务器响应中的comicbooks数组中的每个对象在集合中创建模型一样”。。。我真的不明白主干是如何与json文件一起工作的,你如何告诉它你只想从json文件中的atribute构建漫画模型……我的意思是你如何告诉它你不需要所有其他属性?