已经使用 Backbone Router 完成了一些工作示例,但是有没有办法保护直接在地址栏上使用的路由?而且当用户按下浏览器上的后退按钮时,路由不会被清除并会产生问题。什么是最好的解决方案?
问问题
596 次
1 回答
0
我想我明白你在说什么 - 你想强迫用户通过某个(主页)页面进入你的网站。那是对的吗?
这很有用,例如,当您构建移动优化网络应用程序时,您总是希望用户通过启动屏幕进入。我要做的是为我的路由器设置一个“合法入口”属性,并在每条路由上检查它,如下所示:
APP.Router = Backbone.Router.extend({
legitEntrance: false,
// Just a helper function
setLegitEntrance: function() {
this.legitEntrance = true;
},
// Send the user back to the home page
kickUser: function() {
this.navigate("home", {trigger:true});
},
routes : {
...
},
// Example router function: Home page
routeToHome: function() {
this.setLegitEntrance();
var homeView = APP.HomeView.extend({ ... });
homeView.render();
},
// Example router function: some other internal page
routeToSomeOtherInternalPage: function() {
if(!this.legitEntrance) {
this.kickUser();
return;
}
var someOtherInternalView = APP.SomeOtherInternalView.extend({
...
});
someOtherInternalView.render();
}
....
});
我确信这段代码可以清理一些,但你明白了。希望能帮助到你。
于 2012-05-08T13:16:48.410 回答