如果你的路线被配置为接收参数,你可以观察到$ stateChangeStart
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
console.log(toParams);
}
如果不是,有一个解决方法(完美的作品:d):
一个
一
function getParamByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
getParamByName('param1');
或者所有
function getQueryParams(qs) {
qs = qs.split('+').join(' ');
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
}
return params;
}
console.log(getQueryParams(document.location.search));
您可以使用$ stateProvider来定义具有参数的状态。看看这个:https://scotch.io/tutorials/3-simple-tips-for-using-ui-router –
谢谢,我解决了使用$ locatio.search()。它用params返回一个对象。 –