キー値のペアをバックボーンルートにパラメータとして渡し、マップされた関数が呼び出される前にjavascriptオブジェクトにデシリアライズしたいとします。そして、{: "VAL1"、KEY2:KEY1 "とval2を"}: "?キー1 = val1と&キー2 = val2のを//...#dashboardのhttp" 私がに行くときBackbone.jsのキー値ペアのパラメータ処理ルータ
var MyRouter = Backbone.Router.extend({
routes: {
"dashboard?:params" : "show_dashboard"
},
show_dashboard: function(params){
console.log(params);
}
});
に印刷する必要がありますコンソール。
現在、マップされた各関数内でjQuery BBQの$ .deparamメソッドを使用して、逆シリアル化されたオブジェクトを取得しています。ルータを拡張して一度だけ定義することができれば、paramsはオブジェクトとしてマップされたすべての関数の中でアクセス可能です。これを行うためのきれいな方法は何でしょうか?そして、そこにいくつかの落とし穴がありますか?
多くのおかげで、
真野
私はこれに注意します。あなたのブラウザを混乱させるかもしれないURIを生成しています。 #と? URI仕様で予約されていると見なされますか? #の前に期待されます。これは問題ではないかもしれませんが、ブラウザごとに意図しない結果を引き起こす可能性があります。 http://labs.apache.org/webarch/uri/rfc/rfc3986.html –
@BrianGenisio情報をありがとう。今は動作しますが、あなたが言うように、ブラウザが標準に準拠し始めると、後日作業を停止する可能性があります:-)別のアプローチを試みます。 –
なぜスラッシュを使用しないのですか? –