【发布时间】:2014-07-22 04:40:33
【问题描述】:
我的数据模型看起来像下面的 JSON 结构(只是示例):
var post = {
id: 123,
title: 'Sterling Archer',
comments: [
{text: 'Comment text', tags: ['tag1', 'tag2', 'tag3']},
{text: 'Comment test', tags: ['tag2', 'tag5']}
]
};
在 Backbone 端,它表示为嵌套模型,如下所示:
var PostModel = Backbone.Model.extend({
parse: function (response) {
if (response.comments) {
response.comments = new Backbone.Collection(response.comments);
}
return response;
}
});
var post = new PostModel(post, {parse: true});
我想将rfc6902 (JSONPatch) specification 应用于我的结构。但这里的问题是我的结构不是纯 JSON,而是嵌套的模型/集合单元。
我需要关于如何修补我的嵌套主干js结构的最佳实践,如官方文档examples:
有没有人有在您的 BackboneJS 应用程序中使用 JSON+Patch 规范的经验?请与我们分享。
谢谢。
编辑:这里是一个简短的例子。假设我需要对我的帖子模型进行一些修改,例如添加评论:
var op = [
{ "op": "add", "path": "/comments/2", "value": {text: 'Comment test3', tags: ['tag4']}" }
]
我怎么能用骨干做到这一点:
post.appyPatch(op);
是否有任何最佳实践或/和骨干扩展?
【问题讨论】:
-
不清楚你想用 PATCH 完成什么,但在我看来你会想要覆盖模型的 toJSON 方法以将结构转换回有效的 JSON 无论如何。
-
对不起,我已经更新了帖子
-
很遗憾,
Backbone中的async方法不支持这种类型的请求。你总是可以自己扩展它。那将是best practice恕我直言。您可以随时查看this JSON patch library 并获得一些线索。
标签: json backbone.js nested patch