当应用程序运行时,当params来自get方法时,有没有办法在AngularJs 1.4中获取params?例如:http://www.myapp.com/whatever?param1=1234 我的意思是在我的app.js文件中:
var myApplication = angular.module('App', [ui.router,...])
.run(function ($rootScope,$http,....){
var param = // I wish to read the param here
}
如果不可能,我如何使用控制器获取它? 感谢
答案 0 :(得分:0)
如果您的路线配置为接收参数,您可以观察$ 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));
答案 1 :(得分:0)
早上好, 使用$ location.search()返回带有paramenters.Thanks!
的对象