1

我们目前正在木偶的一个大项目上工作。我们的架构基于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

这并不是一个真正的好方法,因为通常每个小部件上都有很多操作(显示、编辑、创建……),我们必须重复很多。

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

4

1 回答 1

0

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

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

于 2014-12-10T13:25:22.860 回答