如何在第一页加载时获取当前路由?
myRouter = new app.Router();
Backbone.history.start();
myRouter.on("route", function(route, params) {
console.log(route);
});
这适用于每条路线,但不适用于第一条路线(或页面刷新)。
答案 0 :(得分:2)
它不起作用的原因是你在事件被触发后绑定事件。
这可以解决问题:
myRouter = new app.Router();
myRouter.once("route", function(route, params) {
console.log(route);
});
Backbone.history.start();
但更好的方法是在路由器中使用listenToOnce
。
app.Router = Backbone.Router.extend({
routes: { /* ... */ },
initialize: function() {
this.listenToOnce(this, 'route', this.onFirstRoute);
},
onFirstRoute: function(route, params) {
console.log(route);
}
});
它将触发一次,然后它将解除绑定。
或者,如果您只想知道哪条路线:
myRouter = new app.Router();
Backbone.history.start();
console.log(Backbone.history.getFragment()); // or .getPath()