将服务器响应映射到骨干模型的可行方法

Feasible way to map server response into Backbone models?

本文关键字:模型 方法 服务器 响应 映射      更新时间:2023-09-26

服务器以表单上的内容响应:

{'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结构映射到backbone模型/集合的"正确"方式是什么?

正如Protostome所提到的,主干关系对于这类事情是很好的。

然而,看看JSON数据,你已经使用作为一个例子,从我的观点来看,你只有一个模型和集合如下:

    <
  • 活动模型/gh>
  • 活动收集

即使你有一个嵌套的数据集,你也可以用不同的方式来看待它,这给了你一个简单的骨干模型,例如:

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库函数(来自memory _.map())将你接收到的JSON映射成简单的JSON对象,以便与Backbone一起使用。

我希望也许你可以通过在坚持层次结构的背景下思考来简化你的设计?