在页面加载时获取路由

Get route on page load

如何在(第一个)页面加载时获取当前路由?

myRouter = new app.Router();
Backbone.history.start();

myRouter.on("route", function(route, params) {
    console.log(route);
});

这适用于每条路线,但不适用于第一个路线(或页面刷新)。

它不起作用的原因是您在事件触发后绑定了​​一个事件。

这将解决问题:

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()