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