如果您单击链接但我的骨干路由器工作正常,但在尝试直接访问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();
}
每当路由被触发时我都会登录到控制台,但是当您直接访问网址或刷新页面时,不会触发任何路由,甚至也不会触发默认路由。
答案 0 :(得分:5)
在设置侦听器之前启动Backbone.history
,这意味着他们无法对页面加载时发生的初始路由做出反应。
将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();