木偶模块 - 路线组织

时间:2014-07-31 14:50:02

标签: backbone.js marionette backbone-rails

我们目前正在Marionette开展一个大项目。我们的架构基于http://www.backbonerails.com/。该项目分为多个模块,每个模块都有自己的职责。模块重用是很重要的,因此可以在网站的任何区域进行渲染。现在模块就像这样启动:

App.execute "module:name_of_the_module:action", @model, @layout.regionName

到目前为止,这项工作很顺利,但现在我们已将路由器添加到项目中。每个模块都应该对其路由负责,因此它们位于模块中。现在,当路由器获得路由并开始路由时,它们缺少要使用的区域和模型。因此,我们首先必须将区域和模型保存到稍后将在路由器中使用的模块中。

App.commands.setHandler "module:name_of_the_module:action", (model, region) ->
       MyModule.region = region
       MyModule.model = model

这不是一个很好的方法,因为每个小部件(显示,编辑,创建......)通常都有很多动作,我们不得不重复一遍。

所以我问 - 你如何初始化模块并使用路由器?有一些最佳做法吗?

1 个答案:

答案 0 :(得分:0)

我创建了一个marionette.js插件,它允许你进行基于状态的路由(很像angular.js ui-router)。您可以完全消除代码中的模块并重用控制器。

链接:http://ajency.github.io/marionette.state/