2

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

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

4

1 回答 1

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

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

于 2013-06-04T08:46:40.983 回答