gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:49:25 24 4
gpt4 key购买 nike

我想使用 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()['目标']

有人知道什么有效吗? (我使用 $location 作为 Controller 的参数)

<小时/>

更新:

我在下面发布了一个解决方案,但我对此并不完全满意。文档位于 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 的更改使用react”。所以也许 $location 不是适合这项工作的工具(对于丑陋的细节,请参阅下面我的答案)。因此,我将此问题的标题从“如何使用 $location 读取 AngularJS 中的查询参数?” 更改为“如何使用 $location 读取 AngularJS 中的查询参数?”到“在 AngularJS 中读取查询参数最简洁的方法是什么?”。显然,我可以只使用 JavaScript 和正则表达式来解析 location.search,但是对于如此基本的东西进行低级处理确实冒犯了我的程序员的敏感性。

那么:是否有比我在答案中更好的使用 $location 的方法,或者是否有简洁的替代方法?

最佳答案

您可以注入(inject)$routeParams (需要 ngRoute )到您的 Controller 中。这是文档中的示例:

// 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 获取和设置查询参数服务(在 ng 中提供),特别是它的 search 方法:$location.search()

$routeParams 在 Controller 初始加载后就没那么有用了; $location.search() 可以随时调用。

关于angularjs - 在 AngularJS 中读取查询参数最简洁的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27022587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com