如何减少骨干路由器中的重复代码
How to reduce repeated code in Backbone Router
在我的路由器中,初始化方法有相同的代码(代码重复3次!)。
我有3个路由器,所以如果我想重构代码(更改名称等),我必须跳到3个单独的文件,并在每个文件上应用更改。
代码如下:
initialize: =>
# http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/
@contentView = new Backbone.AppView(".js-content")
@searchView = new Backbone.AppView(".js-searchbox")
@sidebarView = new Backbone.AppView(".js-sidebar")
是否有某种技术可以删除此代码?
某种超类?
我用咖啡脚本。
您需要创建一个抽象路由器来初始化所需的视图,然后您的特定路由器必须扩展它:
var BaseRouter = Backbone.Router.extend({
initialize : function(){
console.log('Native Router!');
this.contentView = new Backbone.AppView(".js-content");
this.searchView = new Backbone.AppView(".js-searchbox");
this.sidebarView = new Backbone.AppView(".js-sidebar");
}
});
var RouterOne = BaseRouter.extend({
initialize : function(){
BaseRouter.prototype.initialize.call(this);
//specific stuff
}
});
var RouterTwo = BaseRouter.extend({
initialize : function(){
BaseRouter.prototype.initialize.call(this);
//specific stuff
}
});
var router1 = new RouterOne();
var router2 = new RouterTwo();
您在这里实例化的DOM部分似乎都可以被视为"父视图"的"子视图"。既然如此,为什么不实例化@pageView=new BB.AppView(…),然后在@pageView的render()方法中继续实例化这三个"子类"呢?
相关文章:
- 从桌面读取python文件时高亮显示代码
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- AngularJS UI路由器不能像ng路由器那样工作
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何使用js代码转发reactjs路由器
- 如何减少骨干路由器中的重复代码
- Javascript代码中的访问路由器
- 如何让反应路由器响应 404 状态代码
- AngularJS路由器代码不起作用
- 更改角度 UI 路由器 2.0.13 的代码
- 将路由器代码添加到组件时分析错误?(v2.0.0-beta.0)
- 为什么流星会用这个铁路由器代码变得暴躁
- Express.js 4-路由器分区示例代码失败
- 使用Backbone.js路由器进行路由而不是使用服务器端代码的原因
- Vue.js 路由器:在组件准备就绪时运行代码