我有一个 Backbone 应用程序,我从服务器获得的 JSON 与我希望模型的外观不完全是一对一的。我为我的模型使用自定义解析函数,例如:
parse: function(response) {
var content = {};
content.id = response.mediaId;
content.image = response.image.url;
return content;
}
这行得通。但是,在某些情况下,我有一个 API 调用,我可以在其中一次获取大量信息,例如,有关带有user
and的图像的信息comments
:
{
"mediaId": "1",
"image": {
"title": "myImage",
"url": "http://image.com/234.jpg"
},
"user": {
"username": "John"
},
"comments": [
{
"title": "Nice pic!"
},
{
"title": "Great stuff."
}
]
}
我将如何从这里创建一个新的用户模型和一个评论集合?这是一个选项:
parse: function(response) {
var content = {};
content.id = response.mediaId;
content.image = response.image.url;
content.user = new User(response.user);
content.comments = new Comments(response.comments);
return content;
}
这里的问题是,通过创建一个new User
或new Comments
使用原始 JSON 作为输入,Backbone 只会将 JSON 属性添加为属性。相反,我希望有一个类似中间parse
的方法来控制对象的结构。以下是一个选项:
parse: function(response) {
// ...
content.user = new User({
username: response.user.username
});
// ...
}
...但这不是很防干。
所以,我的问题是:用 1 个 JSON 响应创建多个模型/集合并控制模型/集合属性的好模式是什么?
谢谢!