Backbone.js 如何防止用户直接在地址栏上使用路由器URL?
我已经使用主干路由器做了一些工作示例,但是有没有办法保护直接在地址栏上使用的路由?此外,当用户按下浏览器上的“后退”按钮时,路由不会被清除,并产生问题。最好的解决方案是什么?我想我明白你的意思了-你想强迫用户通过某个(主页)页面进入你的网站。对吗 这很有用,例如,当你正在构建一个移动优化的web应用程序时,你总是希望用户通过启动屏幕进入。我要做的是为我的路由器设置一个“legitEntrance”属性,并在每条路由上检查它,如下所示:Backbone.js 如何防止用户直接在地址栏上使用路由器URL?,backbone.js,Backbone.js,我已经使用主干路由器做了一些工作示例,但是有没有办法保护直接在地址栏上使用的路由?此外,当用户按下浏览器上的“后退”按钮时,路由不会被清除,并产生问题。最好的解决方案是什么?我想我明白你的意思了-你想强迫用户通过某个(主页)页面进入你的网站。对吗 这很有用,例如,当你正在构建一个移动优化的web应用程序时,你总是希望用户通过启动屏幕进入。我要做的是为我的路由器设置一个“legitEntrance”属性,并在每条路由上检查它,如下所示: APP.Router = Backbone.Router.e
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();
}
....
});
我相信这段代码可以被清理一些,但是你已经明白了大概的意思。希望有帮助。直接在地址栏上是什么意思?后退按钮问题可以通过使用
主干.history
对象和对路由器实例上的导航的调用来解决。您的问题太模糊了。请发布更多关于您看到的行为和您期望的行为的详细信息,并包括一些说明您正在做什么的代码。谢谢。这对我来说很有用。导航(“home”,{trigger:true});就是我要搜索的代码。