Backbone.js 木偶模块-路由组织

Backbone.js 木偶模块-路由组织,backbone.js,marionette,backbone-rails,Backbone.js,Marionette,Backbone Rails,我们目前正在木偶的一个大项目上工作。我们的架构基于。该项目分为多个模块,每个模块都有自己的职责。模块的可重用性很重要,因此它们可以在网站上的任何区域呈现。现在,模块的启动方式如下: App.execute "module:name_of_the_module:action", @model, @layout.regionName 到目前为止效果不错,但现在我们在项目中添加了路由器。每个模块都应该负责它们的路由,所以它们都在模块中。现在,当路由器获得路由并开始路由时,它们缺少要使用的区域和模型。

我们目前正在木偶的一个大项目上工作。我们的架构基于。该项目分为多个模块,每个模块都有自己的职责。模块的可重用性很重要,因此它们可以在网站上的任何区域呈现。现在,模块的启动方式如下:

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
这并不是一个很好的方法,因为通常每个小部件上都有很多操作(显示、编辑、创建等等),我们需要重复很多操作


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

我创建了一个木偶网.js插件,它允许您执行基于状态的路由(非常类似angular.js ui router)。您可以完全消除代码中的模块并重用控制器


链接:

不要链接到您的答案,而是在您的答案中包含代码,因此,如果链接失效,我们仍然拥有您的答案。