【问题标题】:Backbone.js: model relationshipsBackbone.js:模型关系
【发布时间】:2014-08-11 11:19:00
【问题描述】:

我有一个可以用以下 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 模型、Newsletter,或者是否需要每个“层”(即 newsletter、section、subsection、entry)的模型,然后以某种方式对关系进行建模?我看到了 Backbone Relational 的链接,这听起来很有希望,但我不确定这个应用程序是否需要它。

到目前为止,我看到的大部分教程似乎都侧重于集合中具有单层待办事项的待办事项样式应用程序。我想一个时事通讯可以被认为是一个部分的集合,一个部分是一个小节的集合等。这是正确的路径吗?

谢谢:)

【问题讨论】:

  • 我看到集合不能有其他属性,所以我猜newsletter、section、subsection和entry都需要是模型
  • 我也面临类似的情况。我没有选择骨干关系,因为我认为我可能会失去对如何查看数据关系的控制。您总是可以像 php 一样执行子查询。唯一要记住的是,javascript 是异步的

标签: json backbone.js model relationships


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多