服务器响应表单上的内容:
{'dates':
{'2013.05-17':
{'activities':
{'activity 1':
{time: 0, 'synced': false},
'activity 2':
{time: 5, 'synced': false},
'activity 3':...
},...
},
'2013.05-18':
{ ...}, ...},
'id': id}
我目前将所有内容都放在一个Backbone模型中,这似乎不是正确的方法。我在网上阅读的例子都使用非常简单的模型,其中没有嵌套结构,并且映射非常简单,例如{x: 1, y: 2}
被映射到坐标模型等等。
将上述JSON结构映射到Backbones模型/集合的“正确”方法是什么?
答案 0 :(得分:1)
正如Protostome所提到的,Backbone Relational对这类事情有好处。
然而,查看您用作示例的JSON数据,从我的观点来看,您只有一个模型和集合,如下所示:
即使您有一组嵌套的数据,您也可以通过不同的方式查看它,从而为您提供简单的主干模型,例如:
var activity = {
id: "Activity 1"
time: 0,
synced: false,
date: "2013.05-17"
batchId: id // this corresponds to the id property in your example
}
这更简单地表示复杂嵌套层次结构中包含的所有数据,更重要的是适合Backbone的工作方式。
如果您无法改变服务器为您提供的内容,您可以使用Underscore库函数(来自内存_.map())将您收到的JSON映射到准备与Backbone一起使用的简单JSON对象。
我希望你可以通过在坚持层次结构的背景下思考来简化你的设计?