如何在Backbone.Marionette中设置多个路由器和控制器

时间:2013-11-05 09:30:50

标签: marionette

随着我的应用程序的增长,我觉得需要更结构化的路由器/控制器设置。木偶文件提到以下内容:

  

建议您将控制器对象划分为较小的相关功能部件,并使用多个路由器/控制器,而不只是一个巨型路由器和控制器。

如果有这样一种结构的例子,那就太好了。假设我有一个由三个部分组成的网站;人,媒体和文章。理想情况下,我希望每个部分都有路由器/控制器。像这样:

App
  -- AppRouter
       -- AppController
            -- AppLayout
            -- PeopleRouter
               -- PeopleController
                  -- PeopleLayout
            -- MediaRouter
               -- MediaController
                  -- MediaLayout
            -- ArticleRouter
               -- ArticleController
                  -- ArticleLayout

我不清楚的是我如何让路由(“/ people / detail / 1”)由另一个路由器处理而不是AppRouter。似乎我必须为每个部分创建模块,但是这与RequireJS一起工作得很好吗?使用两种不同的模块似乎有点奇怪......

如果有人能指出我正确的方向会很棒,我在网上找到的所有例子对我来说都有点混乱。

1 个答案:

答案 0 :(得分:5)

查看我example application中开发的Marionette book

您可以看到2个路由器文件:

如果您想进一步了解本书中使用的路由方法,可以在sample中找到关于该主题的免费章节。虽然它没有解释各种路由器文件,但它解释了将应用程序状态管理与URL管理分离的想法;你可能会感兴趣。

希望这有帮助!