使用Angular JS搜索URL参数

时间:2014-07-27 13:37:17

标签: javascript angularjs url-parameters

说我有这样的网址:

www.mysite.com?account=23&token=asdu756sdg65sdf

现在,我需要使用Angular JS单独访问这些网址参数。

我尝试在我的控制器中使用location.search

console.log(location.search);

很好地返回完整的查询字符串:

?account=23&token=asdu756sdg65sdf

但它似乎返回一个字符串,而不是一个对象。有没有一种简单的方法来访问字符串中的各个ID和值?

我也尝试过:

console.log($location.search());

这似乎返回一个空对象。

3 个答案:

答案 0 :(得分:2)

尝试

var account = ($location.search()).account;

但网址应该像/#!/?account = 1

答案 1 :(得分:0)

您尝试将其用作功能吗?

$location.search();

答案 2 :(得分:0)

纯粹的js方式:

var getParamFromURL = function(_url) {
    var url = _url;
    var _paraString = url.indexOf("&") > -1 ? url.substring(url.indexOf("?") + 1, url.length).split("&") : url.substring(url.indexOf("?") + 1, url.length).split('');
    var _paraObj = {};
    for (i = 0; p = _paraString[i]; i++) {
        _paraObj[p.substring(0, p.indexOf("=")).toLowerCase()] = p.substring(p.indexOf("=") + 1, p.length);
    }
    return _paraObj;
}

通过角度js:

 // Given:
 // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
 // Route: /Chapter/:chapterId/Section/:sectionId
 //
 // Then
 $routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'}

大。 @Cooper是对的。