运行app时获取参数url angular

时间:2016-11-10 18:20:31

标签: angularjs

当应用程序运行时,当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
}

如果不可能,我如何使用控制器获取它? 感谢

2 个答案:

答案 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!

的对象