AngularJS中的$ location.path(path)vs $ location.url(url)

时间:2015-09-17 15:11:00

标签: angularjs url

我见过这些电话:

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

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

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

在相同参数的情况下,使用这些 setters $location.path$location.url)会有什么不同吗?

2 个答案:

答案 0 :(得分:42)

$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。在您的情况下,没有搜索参数,因此它们都将返回相同的内容。

答案 1 :(得分:2)

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