Ho un'app funzionante usando Backbone 0.5.3, che non funziona più usando il backbone 0.9.2.Backbone Route non si chiama
Ho identificato che Router.navigate() non chiama la mia rotta per qualche motivo.
Ecco il mio router:
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
mypage: function() {
// show page ...
}
});
Chiamando il percorso come manualmente in modo funziona benissimo:
Router.mypage()
Ho anche cercato di sovrascrivere il metodo .navigate di spina dorsale per eseguire il debug mio app ...
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
navigate: function(fragment, options) {
console.log("navigate called");
Backbone.history.navigate(fragment, options);
},
mypage: function() {
// show page ...
}
});
... sembra che .navigate si chiami ma ...
Backbone.history.navigate(fragment, options);
... semplicemente non chiama il percorso.
sto usando pushState, ecco la mia chiamata iniziale:
Backbone.history.start({
root: '/',
pushState: true,
silent: true
});
già provato, senza la radice e silenziosi parametri - senza successo.
Ancora: questo funziona utilizzando Backbone 0.5.3.
Grazie a tutti lasciando una risposta!
Achim
Ciao @mu è troppo corto, grazie, l'ho già controllato. la rotta non viene trovata con e senza una barra iniziale e/o finale. Chiamare App.Router.mypage() funziona correttamente, quindi deve essere qualcosa sulla corrispondenza del percorso. –
Whoops! Hai ragione, ricontrolla i miei percorsi e questo lo risolve! Btw: il nuovo comportamento sulle barre iniziali nelle rotte è citato nel log delle modifiche del backbone per la versione 0.9 [http://backbonejs.org/#changelog](http://backbonejs.org/#changelog) –
@Achim: Grazie per controllare il registro delle modifiche. –