我们目前正在木偶的一个大项目上工作。我们的架构基于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
这并不是一个真正的好方法,因为通常每个小部件上都有很多操作(显示、编辑、创建……),我们必须重复很多。
所以我在问 - 你如何初始化你的模块并使用路由器?有一些最佳实践吗?