私は今、物事を完全に混乱させました。Backbone.js 0.9.1 に更新し、スラッシュ ベースの URL に更新して、pushstate:true
. 5 日後、IE9 でアプリをテストしましたが、URL がリンク先のページに固執しません。
私はこのようなことをしました:
main.html
<a href="/signup">Do Signup</a>
ブラウザは にmydomain.com/signup
1 秒間アクセスした後、URL を指定して main.html に戻りますmydomain.com/#signup
。
元に戻すとpushstate:true
、単純なリンクの問題は解決しますが、ルーターを次のようなルートを持つように定義した場所を分解します...
SignupRouter = Backbone.Router.extend({
routes: {
'signup': 'signup',
'signup/:key': 'confirm'
}, initialize: function() {
// do some stuff here
}, signup: function() {
// signup view
}, confirm: function() {
// confirm view
}
});
pushstate を使用しない場合は、ページごとに個別のルートを作成し、サーバー側の変数に基づいてルーターをロードするという戦略に戻る必要があります (私が知っている非常に原始的です):
SignupRouter = Backbone.Router.extend({
initialize: function() {
// signup view
}
});
ConfirmSignupRouter = Backbone.Router.extend({
initialize: function() {
// confirm view
}
});
これを行うIEフレンドリーな方法はありますか(IE7〜9)?サーバー側でいくつかの回避策はありますか? なんでも?