我对backbone.js很陌生,目前正在努力正确构建数据。 我有JSON,我需要映射到骨干模型/集合。
处理这种嵌套数据的最佳方法是什么? resultSet应该是“结果”模型的集合,但是如何包含“resultURL”,“clearKeywordUrl”等其他数据?
"resultUrl":"",
"clearKeywordUrl":"",
"resultTotal": 10,
"nextPageUrl" : ""
"resultSet":[
{
"id":"",
"title":"",
"subTitle":null,
"summary":""
}]
答案 0 :(得分:2)
如果我做得对,你希望resultSet的内容成为你的收藏模型,而其他关键是你收藏的某种“元”信息?您可以覆盖集合的parse方法以将元数据存储在集合对象中,并仅使用resultSet的内容作为模型:(未经测试的概念提议)
var coll = Backbone.Collection.extend({
parse: function(data){
this.resultUrl = data.resultUrl;
this.clearKeywordUrl = data.clearKeywordUrl;
this.nextPageUrl = data.nextPageUrl;
return data.resultSet; //use only the resultSet content as models
},
initialize: function(options){
console.log("resultUrl", this.resultUrl);
}
});
答案 1 :(得分:1)
您应该拥有名称结果的模型 结果具有以下属性:
resultUrl: '',
clearKeywordUrl: '',
...
此模型有一个名为 resultSet 的字段,它将是结果的集合。 并定义一个名为 resultSetItem 的单独模型,其中包含一些默认值。
如果您有时间,请查看Thomas Davis在Backbone Tutorials
上的介绍性视频