backbone的view切换问题

Opera_mini 2013-08-22 11:24:06
AppRouter = Backbone.Router.extend({
routes: {
'': 'nav',
'!gongjiao/:step': 'goStep'
},

nav: function(){
var Step1 = Backbone.View.extend({
el: '.step1',
initialize: function() {
},
events: {
'click .button', 'taped' //当前el子元素的一些事件绑定
},
taped: function() {
}
});
var step1 = new Step1();
},

goStep: function(step) {
var Step2 = Backbone.View.extend({
el: '.step2',
initialize: function() {
},
events: {
'click a', 'taped' //当前el子元素的一些事件绑定
},
taped: function() {
}
});
var step2 = new Step2();
}
});
window['app_router'] = new AppRouter;
Backbone.history.start();
上面的一个view对应一个hash,每当hash变化就切换到相对应view的那个界面,切换界面的show,hide之类的方法就不写了。现在主要问题时,当hash来来回回多次变换,routes下相对应的方法被多次执行,相对应的view也多次被实例化后,view相对应的界面岂不是多次被重复渲染以及el子元素多次绑定事件。这个如何解决?
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rentongdu 2013-10-20
  • 打赏
  • 举报
回复
每次判断是否存在视图实例,存在的话就用原来的,不存在的话就新建。另外,视图的扩展放到router外面比较好。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧