获取页面加载路线

时间:2016-11-07 19:45:38

标签: javascript backbone.js

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

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

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

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

1 个答案:

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