Javascript Angular JS-检索URL参数

Javascript Angular JS-检索URL参数,javascript,angularjs,Javascript,Angularjs,检索URL参数的正确方法是什么 例如: 谢谢这将把你的查询转换成一个对象 var queryData = url.split('?')[url.split('?').length - 1].split('&').reduce(function(prev, curr){ var fieldName = curr.split('=')[0]; var value = curr.split('=').length > 1 ? curr.split('=')[1] : '

检索URL参数的正确方法是什么

例如:


谢谢

这将把你的查询转换成一个对象

var queryData = url.split('?')[url.split('?').length - 1].split('&').reduce(function(prev, curr){
    var fieldName = curr.split('=')[0]; 
    var value = curr.split('=').length > 1 ? curr.split('=')[1] : '';
    prev[fieldName] = value; 
    return prev
}, {});
然后您可以通过queryData.product访问它们。 不是角度,但这是一个解决方案


对于角度方式,您可以使用$location.search(),如下所述

您可以使用$location服务。例如:

angular.module('parameters',[])。运行(['$location',
功能($位置){
var params=$location.search();
}

]);我发布了同样的问题,并提供了更多细节,找到了完美的答案。请参见DavidL在我的问题中的回答:


感谢所有在这方面帮助我的人;也许我在最初的问题中没有包含足够的细节

谢谢@roger。这似乎只有在我的URL以#/as结尾时才起作用。有什么解决方法吗?你使用HTML5模式吗?因为您的URL没有前缀“#/”?“$location.search();”在HTML5模式下也以同样的方式工作。如果不是,您的参数必须始终在“#/”前缀之后,这是一种有角度的方式,您的URL将始终以“#/”完成。谢谢@roger。我读过HTML5模式,甚至看到了文档,但我对如何实现这一模式感到非常困惑。上面说要使用$locationProvider,但我应该在哪里设置它?它会在控制器里吗?因为我需要它在全球生效,所以您应该使用模块的config函数(angular.module('parameters',[]).config(…)Hi@tituspovici。同样的问题。这似乎只有在我的URL以#/example.com/mypage.html#/?product=1234®ion=4&lang=en结尾时才起作用。你知道有没有解决办法吗?后者感觉不像是一个典型的URL。就角度而言,我不知道。您可以创建自己的角度服务,使用我在上面为非角度路由的url编写的函数(使用#/)