我见过这些电话:
$location.url('/path/to/something/' + id + '/index');
和
$location.path('/path/to/something/' + id + '/index');
他们似乎在做同样的事情
从文档中我发现URL是例如/path?a=b#hash
,路径是网址的一部分。
在相同参数的情况下,使用这些 setters ($location.path
或$location.url
)会有什么不同吗?
答案 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
这两个功能同时充当setters
和getters
。
Url
基本上是Path + search strings
。在您的情况下,没有搜索参数,因此它们都将返回相同的内容。
答案 1 :(得分:2)
$location.path()
允许您在斜杠后提取出您的搜索字符串中的特定部分,并排除我猜测的参数。如果您没有搜索字符串,那么它的工作方式与$location.url()
方法相同。