在AngularJS中读取查询参数的最简洁的方法是什么?

我想使用AngularJS读取URL查询参数的值。我正在访问具有以下URL的HTML:

http://127.0.0.1:8080/test.html?target=bob

正如所料,location.search是“?target = bob”。
为了访问target的值,我发现了在网络上列出的各种例子,但没有一个在AngularJS 1.0.0rc10中工作。特别是,以下都是未定义的:

> $ location.search.target
> $ location.search [‘target’]
> $ location.search()[‘target’]

任何人都知道什么工作? (我使用$ location作为我的控制器的参数)

更新:

我在下面发布了一个解决方案,但我不完全满意。
Developer Guide: Angular Services: Using $location的文档说明了以下关于$ location:

When should I use $location?

Any time your application needs to react to a change in the current
URL or if you want to change the current URL in the browser.

对于我的场景,我的页面将从具有查询参数的外部网页打开,所以我不是“对当前URL的更改做出反应”本身。所以也许$ location不是正确的工作(对于丑陋的细节,见我的答案下面)。因此,我改变了这个问题的标题从“如何使用$ location?在AngularJS中读取查询参数?到“在AngularJS中阅读查询参数的最简洁的方法是什么?”。显然,我可以只使用javascript和正则表达式来解析location.search,但是低级的东西,所以基本的真的冒犯我的程序员的感觉。

所以:有一个更好的方式使用$位置比我在我的答案,或有一个简洁的替代?

您可以将 $routeParams注入控制器。这里是文档的一个例子:
// 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'}

编辑:您还可以获取和设置查询参数与$location.search() – 因为$ routeParams在控制器的初始加载后不太有用。

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...