嵌套JSON到骨干模型

时间:2013-11-25 10:31:47

标签: backbone.js collections model

我对backbone.js很陌生,目前正在努力正确构建数据。 我有JSON,我需要映射到骨干模型/集合。

处理这种嵌套数据的最佳方法是什么? resultSet应该是“结果”模型的集合,但是如何包含“resultURL”,“clearKeywordUrl”等其他数据?

"resultUrl":"",
"clearKeywordUrl":"",
"resultTotal": 10,
"nextPageUrl" : ""
"resultSet":[
{
    "id":"",
    "title":"",
    "subTitle":null,
    "summary":""
}]

2 个答案:

答案 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

上的介绍性视频