加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 09:36:51 所属栏目:安全 来源:网络整理
导读:我想使用AngularJS读取URL查询参数的值。我正在访问具有以下URL的HTML: http://127.0.0.1:8080/test.html?target=bob 正如所料,location.search是“?target = bob”。 为了访问target的值,我发现了在网络上列出的各种例子,但没有一个在AngularJS 1.0.0r
我想使用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在控制器的初始加载后不太有用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读