バックボーン 0.5.3 を使用して動作しているアプリがありますが、バックボーン 0.9.2 では動作しなくなりました。
Router.navigate() が何らかの理由で自分のルートを呼び出さないことを確認しました。
これが私のルーターです:
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
mypage: function() {
// show page ...
}
});
次のように手動でルートを呼び出すとうまくいきます:
Router.mypage()
また、アプリをデバッグするためにバックボーンの .navigate メソッドを上書きしようとしました...
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 ...
}
});
... .navigate が呼び出されているようですが ...
Backbone.history.navigate(fragment, options);
...ルートを呼び出さないだけです。
私は PushState を使用しています。最初の呼び出しは次のとおりです。
Backbone.history.start({
root: '/',
pushState: true,
silent: true
});
root および Silent パラメータなしですでに試しましたが、成功しませんでした。
繰り返しますが、これは Backbone 0.5.3 を使用して動作します。
返信を残してくださった皆様、ありがとうございます。
アヒム