Javascript 将服务器响应映射到主干模型的可行方法?
服务器以表单上的内容进行响应:Javascript 将服务器响应映射到主干模型的可行方法?,javascript,json,backbone.js,Javascript,Json,Backbone.js,服务器以表单上的内容进行响应: {'dates': {'2013.05-17': {'activities': {'activity 1': {time: 0, 'synced': false}, 'activity 2': {time: 5, 'synced': false}, 'activity 3':...
{'dates':
{'2013.05-17':
{'activities':
{'activity 1':
{time: 0, 'synced': false},
'activity 2':
{time: 5, 'synced': false},
'activity 3':...
},...
},
'2013.05-18':
{ ...}, ...},
'id': id}
我现在把所有的东西都放在一个主干模型中,这似乎不是正确的方法。我在网上读到的例子都使用非常简单的模型,没有嵌套的结构,映射也非常简单,例如,{x:1,y:2}
映射到坐标模型等等
将上述JSON结构映射到主干网模型/集合的“正确”方法是什么?正如Protostome所提到的,主干网关系对这类事情很有好处 但是,以您使用的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
}
这将更简单地表示复杂嵌套层次结构中包含的所有数据,更重要的是,它适合主干网的工作方式
如果无法更改服务器提供的内容,则可以使用下划线库函数(从memory u.map())将接收到的JSON映射到简单的JSON对象中,以便与主干一起使用
我希望您可以通过在坚持层次结构的环境之外进行思考来简化设计?您尝试过BackbonRelational吗?@Protostome不,我来看看。谢谢,说得很好。我可以选择更改服务器响应。我会调查的。谢谢我重写了与您建议的类似的完整结构,并将其更好地映射到我的代码中。谢谢!:-)