具有集合属性的骨干模型 - 不将集合转换为JSON的toJSON方法

时间:2013-11-06 15:08:31

标签: backbone.js

所以我有一个模型,其中包含另一个模型的集合作为其属性之一。使用model.toJSON()时,集合保留为集合,不会转换为数组。

它回来像

{
  prop1: "value",
  prop2: "value",
  collection: backbonecollectionobject
  otherprop: "value"
} 

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来覆盖toJSON函数:

Backbone.Model.prototype.toJSON = function() {
  var json = _.clone(this.attributes);
  for(var attr in json) {
    if(json[attr] instanceof Backbone.Collection) {
      json[attr] = json[attr].toJSON();   
    }
  }
  return json;
};

它查找具有集合值的任何属性,并将这些属性转换为JSON()。