如何使用MarionetteJS创建多个布局?

时间:2014-03-05 17:09:45

标签: backbone.js requirejs marionette

我的主干木偶和requireJS应用程序在不同的文件夹中构建:集合,控制器,配置,init,模型,路由器,服务,模板和视图。

在AppInit文件中定义了一个名为mainRegion的区域。 我应该如何更改我在mainRegion中使用的视图?

一个选项是使用Marionette Layouts在mainRegion中设置包含两个区域(如标题和内容)的布局。

我应该在哪里创建布局? 在views文件夹或控制器文件夹中还是其他任何东西?

1 个答案:

答案 0 :(得分:0)

您对创建布局的建议完全有效。

这是另一种选择。木偶应用程序很像布局with support for multiple regions 所以你可以像这样定义你的应用程序:

App.addRegions({
  header: "#header",
  main: "#main"
});

如果main非常复杂,它也可以是具有嵌套区域的布局。例如, 如果你有侧边栏,内容和页脚,它可以安排如下:

app                 -> Marionette.Application
  header              -> Marionette.Region
  main                -> Marionette.Region
    mainLayout          -> Marionette.Layout
      sidebar             -> Marionette.Region
      content             -> Marionette.Region
      footer              -> Marionette.Region

显示您的观看后,它将如下所示:

app                 -> Marionette.Application
  header              -> Marionette.Region
    headerContent       -> YourHeaderViewClass
  main                -> Marionette.Region
    mainLayout          -> Marionette.Layout
      sidebar             -> Marionette.Region
        sidebarContent      -> YourSidebarView
      content             -> Marionette.Region
        appContent          -> YourAppContentView
      footer              -> Marionette.Region
        footerContent       -> YourFooterView

关于组织,布局是一种视图,因此我有时会将它们放在我的views文件夹中。

但是,如果我最终得到很多布局,我会在旁边创建另一个文件夹 views调用layouts并单独组织

...
views/
  viewA.js
  viewB.js
layouts/
  mainLayout.js
  otherLayout.js
...