我有一个网址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;
});
}]);
我该怎么做?
谢谢
答案 0 :(得分:2)
您应该使用$location
的search()
方法:
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/