我想使用AngularJS读取URL查询参数的值。我正在使用以下URL访问HTML:
http://127.0.0.1:8080/test.html?target=bob
location.search
是"?target=bob"
。
对于访问目标的值,我在网上找到了各种例子,但它们都不能在AngularJS 1.0.0rc10中使用。特别地,以下都是undefined
:
$location.search.target
$location.search['target']
$location.search()['target']
有人知道怎样做有效吗?(我使用$location
作为参数到我的控制器)
更新:
我在下面发布了一个解决方案,但我并不完全满意。 开发者指南:Angular服务:Using $location的文档声明了关于$location
的以下内容:
什么时候我应该使用$location?
任何时候你的应用程序需要对当前的变化做出反应
. URL或如果您想更改浏览器中的当前URL
对于我的场景,我的页面将从一个带有查询参数的外部网页打开,所以我本身并不是“对当前URL的变化做出反应”。所以也许$location
不是适合这项工作的工具(关于丑陋的细节,请参阅下面我的回答)。因此,我把这个问题的标题从“如何在AngularJS中使用$location读取查询参数?”改为“在AngularJS中读取查询参数最简洁的方法是什么?”显然,我可以只使用javascript和正则表达式来解析location.search
,但为了这么基本的东西而使用这种低级别的东西真的冒犯了我的程序员敏感性。
所以:有没有比我的回答更好的方法来使用$location
,或者有一个简洁的替代方法?