Backbone.js:模型关系

时间:2014-06-20 16:21:01

标签: json backbone.js model relationships

我有一个可以用以下JSON模型表示的时事通讯。我想建立一个新闻通讯编辑器,允许拖放条目(文章)的移动,以及添加新条目的能力。最终,JSON将通过API保存到数据库中。

var newsletter = new Newsletter({
    id : 1,
    title : 'Newsletter 1',
    date : '17.08.2014',
    sections : [
      { title : 'Lorem ipsum dolor sit amet',
        color : '831b12',
        subsections : [
          { title : 'Lorem ipsum dolor sit amet',
            entries : [
              { title : 'Lorem ipsum dolor sit amet',
                intro : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce lacus mi, ullamcorper id mi non, dign...',
                url : '#'
              },
              { title : 'Lorem ipsum dolor sit amet',
                intro : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce lacus mi, ullamcorper id mi non, dign...',
                url : '#'
              }
            ]
          },
          { title : 'Lorem ipsum dolor sit amet',
            entries : [
              { title : 'Lorem ipsum dolor sit amet',
                intro : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce lacus mi, ullamcorper id mi non, dign...',
                url : '#'
              },
              { title : 'Lorem ipsum dolor sit amet',
                intro : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce lacus mi, ullamcorper id mi non, dign...',
                url : '#'
              },
              { title : 'Lorem ipsum dolor sit amet',
                intro : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce lacus mi, ullamcorper id mi non, dign...',
                url : '#'
              }
            ]
          }
        ]
      }
    ]
  });

我不清楚我是否需​​要单一的Backbone模型,时事通讯,或者我是否需要每个'层的模型? (即时事通讯,部分,小节,条目),然后以某种方式模拟关系?我已经看到了Backbone Relational的链接,听起来很有希望,但我不确定这个应用程序是否有必要。

到目前为止,我所看到的大部分教程似乎都集中在一个集合中带有单层待办事项的todo风格的应用程序中。我认为通讯可以被视为一个部分的集合,一个部分的集合等等。这是正确的路径吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

为了记录,我最终在Knockout.JS中构建了它并且它处理得很漂亮。

我能够编写为每个json元素类型(部分,子部分和条目)生成的HTML块,这些部分构成了时事通讯的基础。然后我使用Knockout Sortable plugin允许元素在父对象中重新排序,同时保持层次结构完整(即子部分可以在它们自己的部分内移动,或移动到另一部分)。

希望有人会觉得这很有用。