あなたの右。私は先に進んであなたの言っていることをテストしました、そしてすべてのクエリ文字列パラメータがコンテキストパラメータに書き込まれているようです。
したがって、次のようなルートがある場合:
http://www.somesite.com/#/services/?routeInfo=value1&router=value2¶m1=value3
activateメソッド内:
define(function() {
return {
activate: function(context) {
console.log(context);
}
};
});
次に、context
は次のjsonオブジェクトになります。
{
routeInfo: {...}, // info object of moduleId and such
router: {...}, // reference to the router.js pluggin
param1: 'value3',
splat: ['?routeInfo=value1&router=value2¶m1=value3']
}
したがって、クエリ文字列パラメータはcontext
オブジェクトに書き込まれますが、クエリ文字列パラメータが、、、routeInfo
またはrouter
の場合splat
、悪いことが起こります。特にその場合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
オブジェクトからは、?
デリミネーターの後のすべてが含まれます。
これはあなたの質問に答えますか?