你的权利。我继续测试你的说法,似乎所有查询字符串参数都被写入上下文参数。
所以如果你有这样的路线:
http://www.somesite.com/#/services/?routeInfo=value1&router=value2¶m1=value3
在您的激活方法中:
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
对象中,它将包含分隔符之后的所有内容?
。
这能回答你的问题吗?