通过javascript获取URL变量

时间:2014-04-30 14:29:30

标签: javascript angularjs

我有一个网址www.myurl.com/angularjs?var=myvar

我刚刚开始使用AngularJS(和javascript说实话)并且我试图获取'var'的值并将其传递给我的控制器但我不知道如何访问url变量

这是我的控制器...

vdApp.controller('ApplicantCtrl', ['$scope', '$http', function($scope, $http) {
    $http.post('http://www.myurl.com/services', iWantToPassMyDataHere).success(function(data)
    {
        $scope.results = data;
    });
}]);

我该怎么做?

谢谢

4 个答案:

答案 0 :(得分:2)

您应该使用$locationsearch()方法:

vdApp.controller('ApplicantCtrl', ['$scope', '$http', '$location', function($scope, $http, $location) {
    $http.post('http://www.myurl.com/services', $location.search()).success(function(data) {
        $scope.results = data;
    });
}]);

答案 1 :(得分:0)

document.location.search从网址

返回查询字符串

答案 2 :(得分:0)

使用location.search并拆分查询字符串,如下所示:

var queryVals = location.search.split('&');
var v = queryVals[0].split('=')[1];

这假设您的查询参数var是第一个参数。

答案 3 :(得分:0)

#您遇到问题如果您不使用正则表达式。

var get = getUrlVars();
function getUrlVars() {
    var vars = {};
    /*Splits the variables into chuncks*/
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
        /*Takes those chunks and removes anything after the hashtag*/
        vars[key] = value.replace(/#\b[^#]*$/gi, '');
    });
    return vars;
}

此更改

http://www.yourdomain.com/account/products/productEdit.php?product_key=2edc8450-e75b-11e4-97c1-d02788bb017c

get.product_key = '2edc8450-e75b-11e4-97c1-d02788bb017c'

http://www.yourdomain.com/account/products/productEdit.php?product_key=2edc8450-e75b-11e4-97c1-d02788bb017c#inventory

get.product_key = '2edc8450-e75b-11e4-97c1-d02788bb017c'

使用此网站探索正则表达式。 http://regexr.com/