我对骨干路由器有疑问,请帮忙:
我有一台路由器:
define(['views/index', 'views/login'], function(indexView, loginView) {
var SelinkRouter = Backbone.Router.extend({
currentView: null,
routes: {
'home': 'home',
'login': 'login'
},
changeView: function(view) {
if(null != this.currentView)
this.currentView.undelegateEvents();
this.currentView = view;
this.currentView.render();
},
home: function() {
this.changeView(indexView);
},
login: function() {
this.changeView(loginView);
}
});
return new SelinkRouter();
});
当用户第一次到达我的网站时,触发了“登录”路由,并将其带到登录页面,登录后,用户通过以下方式导航到“主页”路径:window.location.hash =“home ”。现在用户看到网页的网址如下:mysite.com/#home,这很好。
问题是,此时如果我按F5键或以其他方式刷新页面,虽然再次触发了“home”路径(这很好),同时整个页面被重新加载并且我所有的js再次重新加载。所以应用程序重启,它带我回到登录页面(太糟糕了)。
有没有人有同样的问题?我应该停止页面刷新吗?如何?
非常感谢任何想法。答案 0 :(得分:0)
在我看来,最好的选择是为您的登录设置一个单独的页面。虽然这听起来像是一个copout答案,但我认为登录页面应该是应用程序的入口,而不是应用程序本身的一部分。