如果您单击链接,我的主干路由器工作正常,但在尝试直接访问 URL 或刷新页面时不起作用。
路由器
var app = app || {};
var appRouter = Backbone.Router.extend({
routes: {
"blog": "blog",
"blog/post/:id": "blogPost",
"faqs": "faqs",
"*other": "defaultRoute"
}
});
app.Router = new appRouter();
Backbone.history.start();
应用程序
var app = app || {};
var view = new app.AppView();
app.Router.on('route:defaultRoute', function() {
console.log("Default Route");
}
app.Router.on('route:blog', function() {
console.log("Blog Route");
view.showBlog();
}
每当触发路由时,我都会登录到控制台,但是当您直接访问 url 或刷新页面时,不会触发任何路由,甚至不会触发默认路由。
最佳答案
您开始 Backbone.history
在您设置监听器之前,这意味着它们无法对页面加载时发生的初始路由使用react。
搬家 Backbone.history.start();
在您的路由器定义之外,或者至少在您设置路由之后,您应该很高兴。
var appRouter = Backbone.Router.extend({
routes: {
"blog": "blog",
"*other": "defaultRoute"
},
blog: function() {},
defaultRoute: function() {}
});
app.Router = new appRouter();
app.Router.on('route:defaultRoute', function() {
console.log("Default Route");
});
app.Router.on('route:blog', function() {
console.log("Blog Route");
});
Backbone.history.start();
和一个演示 http://jsfiddle.net/nikoshr/k3Lcxwq2/
关于backbone.js - Backbone 路由器无法直接访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058675/