あなたの権利。私は先に進み、あなたの言うことをテストしました。そして、すべてのクエリーストリングパラメータがコンテキストパラメータに書き込まれているように見えます。
あなたは、このようなルートがある場合はそう:あなたのactivateメソッド内の
http://www.somesite.com/#/services/?routeInfo=value1&router=value2¶m1=value3
:
{
routeInfo: {...}, // info object of moduleId and such
router: {...}, // reference to the router.js pluggin
param1: 'value3',
splat: ['?routeInfo=value1&router=value2¶m1=value3']
}
:
define(function() {
return {
activate: function(context) {
console.log(context);
}
};
});
を次にcontext
はのJSONオブジェクトになります
したがって、クエリ文字列のパラメータはtに書き込まれています彼context
オブジェクトですが、クエリ文字列のパラメータがrouteInfo
、router
、またはsplat
の場合、悪いことが起こります。特にその場合splat
!
だから、私はあなたのクエリ文字列パラメータがスプラットオブジェクトに渡され見ることができるようにだけ、また...これらのパラメータを使用し
いけないと思います。
function parsePlease(queryString) {
var obj = {};
var splitV = queryString.split('&');
for (var i = 0, max = splitV.length; i< max; i++) {
obj[splitV[i].split('=')[0]] = splitV[i].split('=')[1];
}
return obj;
}
次のようにすると、簡単にクエリ文字列を解析できます。あなたはそれを改善したいかもしれません..私はちょうどそれをホイップしました。
window.locationオブジェクトからクエリ文字列パラメータを取得することもできます。 window.location.search
オブジェクトからは、?
デリミネーターの後ろのすべてが含まれます。
これはあなたの質問に答えますか?
何か間違っていない限り、mapAutoも使用すると、私はスプラットプロパティを取得するだけです。私はそれを使うことができると思うけど、私のルーティングには他に何ができるのか分からない。いずれにしても、私の周りの遊びから、私にとってはwindow.location.searchを使うのが最善の方法です。私は実際に自分自身で文字列を解析することなくこれを行う方法があったと思う。 –
durandalは初期段階にあり、ルータモジュールはプラグインです。時間をつけてください。今後数ヶ月ではるかに良いと思います。図書館は依然として積極的に取り組んでいる。それが成長するにつれて、それははるかに精通しているだろうから、あなたは今それを使うのが良いです。 –