我有一些模型不仅包含基本数据属性,但它们可能有一个或两个属性来保存另一个模型对象.
这没关系,但现在我想打电话
myRootModel.toJSON()
而且我注意到它并没有在我试图调用toJSON()的模型中的其他模型上调用.toJSON.
是否有办法覆盖骨干模型.toJSON以递归方式遍历所有字段,无论它们是基本属性,子模型还是集合?如果没有,我可以在每个模型/集合中覆盖toJSON吗?
我知道骨干关系,但我不想走这条路 - 我没有使用fetch/save,而是我们的API返回我在模型解析函数中调整的响应,只需调用新的MyRootModel(数据, {解析:真}).
Loa*_*oof 16
这是一种你可以实现这种事情的方式(也许还有另一种方式):
Backbone.Model.prototype.toJSON = function() {
var json = _.clone(this.attributes);
for(var attr in json) {
if((json[attr] instanceof Backbone.Model) || (json[attr] instanceof Backbone.Collection)) {
json[attr] = json[attr].toJSON();
}
}
return json;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6868 次 |
| 最近记录: |