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

前端之家收集整理的这篇文章主要介绍了在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相关文章