$location.path(path) vs $location.url(url) in Angu

2019-03-12 02:27发布

I've seen these calls:

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

and

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

It seems they are doing the same thing.
From documentation I've found that URL is e.g. /path?a=b#hash, and path is a part of URL.

Is there any difference which of these setters to use ($location.path or $location.url) in case of the same argument?

标签: angularjs url
2条回答
姐就是有狂的资本
2楼-- · 2019-03-12 02:58

$location.path returns the part of the URL after the slash NOT including search string parameters (after the question mark)

$location.url returns the entire URL after the slash, including search string parameters.

For example, let's say you have this URL

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

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

$location.path returns /some/path

These two functions act as both setters and getters.

Url is basically Path + search strings. In your case, there are no search parameters, so both of them will return the same thing.

查看更多
三岁会撩人
3楼-- · 2019-03-12 02:58

$location.path() allows you to extract out a specific part of your depending on your search string after the slash and excluding the parameters I guess. And if you don't have a search string then it works the same way as the $location.url() method does.

查看更多
登录 后发表回答