我有一个关于骨干路由器的问题,请帮助:
我有一个路由器:
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”导航到“home”路由。现在用户看到主页的网址看起来像:mysite.com/#home,这很好。
问题是,此时如果我按 F5 键或以其他方式刷新页面,尽管再次触发了“主页”路由(这很好),同时重新加载了整个页面并且我的所有 js 都重新加载了. 所以应用程序重新启动,它带我回到登录页面(太糟糕了)。
有没有人有同样的问题?我应该停止页面刷新吗?如何?
非常感谢您的任何想法。