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

时间:2013-06-04 07:59:12

标签: javascript json backbone.js

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

{'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模型/集合的“正确”方法是什么?

1 个答案:

答案 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对象。

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