2016-11-07 2 views

ответ

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() 
Смежные вопросы