【问题标题】:$location.path(path) vs $location.url(url) in AngularJSAngularJS 中的 $location.path(path) 与 $location.url(url)
【发布时间】:2017-10-04 05:26:08
【问题描述】:

我见过这些电话:

$location.url('/path/to/something/' + id + '/index');

$location.path('/path/to/something/' + id + '/index');

他们似乎在做同样的事情。
从文档中我发现 URL 是例如/path?a=b#hash,路径是 URL 的一部分。

在参数相同的情况下,使用这些 setter 中的哪一个($location.path$location.url)有什么区别吗?

【问题讨论】:

  • 如果您不使用搜索字符串,则不会。它们不包含在path

标签: angularjs url


【解决方案1】:

$location.path 返回斜杠后的 URL 部分,不包括搜索字符串参数(问号后)

$location.url 返回斜杠后的整个 URL,包括搜索字符串参数。

例如,假设您有这个网址

http://example.com/#/some/path?foo=bar&baz=xoxo

$location.url 返回/some/path?foo=bar&baz=xoxo

$location.path 返回/some/path

这两个函数同时充当settersgetters

Url 基本上是Path + search strings。在您的情况下,没有搜索参数,因此它们都将返回相同的内容。

【讨论】:

  • 谢谢!请注意,我问的是二传手。
  • 由于您使用相同的设置器,没有搜索参数,因此没有区别。
【解决方案2】:

$location.path() 允许您根据斜杠后的搜索字符串提取您的特定部分,并排除我猜的参数。如果您没有搜索字符串,那么它的工作方式与 $location.url() 方法相同。

【讨论】:

  • 谢谢!请注意,我问的是二传手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
相关资源
最近更新 更多