单片骨干路由器
Monolithic Backbone Router
我目前正在学习Backbone.js的来龙去脉,但到目前为止我能找到的每个例子都使用以下路由器模式或它的一些变体:
var MyRouter = Backbone.Router.extend({
routes: {
'foo/:id': 'foo',
'bar/:id': 'bar',
'': 'index'
},
foo: function(id) { /* ... */ },
bar: function(id) { /* ... */ },
index: function() { /* ... */ }
});
我完全理解这里发生了什么,但是我对这个模式有一个严重的担忧,我(到目前为止)还没有找到解决方案。在任何规模的应用程序中,在一个地方指定所有路由将创建一个单片路由器。不仅对路由本身而言,而且(显然)要求控制器都是路由器本身的一部分。
如何在Backbone.js中组织一个大规模的、模块化的应用程序的路由?
注:
让我们来看看这个来自Derick Bailey的例子项目,他是Backbone.Marionette的创造者。
你可以看到他是如何在模块中组织他的应用的,每个模块都有一个路由器来处理路由。在Marionette中,模块的概念类似于require加载部分具有特定依赖关系的代码所使用的模块。
即使你不打算使用Marionette而只是坚持使用Backbone,你也可以从他如何划分代码中找到一些有用的见解。不过我建议你评估一下《木偶》
我写了一个Backbone插件专门解决这个问题:https://github.com/ModelN/backbone.subroute
这里有一篇博客介绍了如何设置,以及它背后的一些哲学:http://www.geekdave.com/2012/04/05/module-specific-subroutes-in-backbone/
我希望它有帮助!
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何使用WCF服务和javascript表单post上传.doc文件
- 多个单选按钮组相互干扰
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- Javascript生成的表单未提交
- AngularJS UI路由器不能像ng路由器那样工作
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 检查angularjs中未保存的表单数据(使用ui路由器的多个表单)
- 单视图页面永久链接为空,带有铁路由器
- 如何在单击处理程序中使用反应路由器 1.0.x 进行客户端路由
- 如何拆分单片节点.js javascript
- 单击后响应重定向到路由器 URL 并显示默认页面
- 如何将数据从表单传递到路由器
- 在我的Meteor应用程序中,当我单击链接时,路由器不会呈现页面
- 单击链接两次以使用ui路由器激活状态
- 单片骨干路由器
- 25mb大小的PDF在单片阅读器中无法读取
- 带有css3事务的单页web应用路由器