Backbone.js页面布局&在全球范围内提供模型集合

时间:2012-07-20 14:04:33

标签: backbone.js

我正在开发一个简单的Backbone.js应用程序进行练习 - 人员报价数据库。 (Person有许多QuotesComments

问题

  1. 我想有两种布局。

    一个是标准的两列布局,一列作为侧边栏,另一列作为内容区域。 (我想将视图嵌入到该列中,并保持侧边栏静止。)

    另一个是用于身份验证的简单单列布局(我也想添加身份验证,因为这是一个练习项目)。一个带登录表单的简单页面。显然,这种布局只能用于一个视图。

    我该怎么做?是否有插件可以使这成为可能/容易? (基本上,是否有与Rails布局系统相同的东西?)

  2. 在该侧栏上,我希望有一个Person模型对象列表,因此每个页面上必须包含所有Person个对象的列表。在Rails中,我将通过ApplicationController中的一个简单的before_filter完成此任务。

    实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

  1. 我参与了一个项目,该项目也需要类似的布局结构。我们在前端有一个带有两个骨干实例的rails应用程序。为了获得我们的布局,我们使用了jQuery-UI-Layout。这将允许您创建表示侧栏和列的多个“面板”。然后,您可以简单地将视图渲染到每个面板中,并且它们将非常好地分离。

  2. 创建引号和注释视图时,可以将它们传递给人员集合,以便他们可以访问人员模型对象。

  3. 所以...

    假设你有一个'main_view',这个主视图将初始化你的jQuery ui布局。

    $(this.el).layout({options})
    

    其中,选项将在“报价”和“注释”面板上设置大小。然后,您可以创建视图并将“人员”集合传递给他们,该集合是“人物”模型的集合。

    new App.Views.QuotePanelView({
      el: $(this.el).find('#quote_panel'),
      collection: people
    })
    

    这里的人是一群人。评论小组也是如此。

    var people = new People([
      {"name" : "James Cameron"},
      {"name" : "Bat Man"},
      {"name" : "Cool Guy"}
    ]);