Причина, по которой она не работает, заключается в том, что вы связываете событие после запуска события.
Это позволило бы решить проблему:
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()