$ location.path(путь) vs $location.url(url) в AngularJS

Я видел эти вызовы:

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

и

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

Кажется, они делают то же самое.
Из документации я обнаружил, что URL-адрес, например, /path?a=b#hash, а путь - часть URL.

Есть ли разница в том, какой из этих настроек использовать ($location.path или $location.url) в случае одного и того же аргумента?

Ответы

Ответ 1

$location.path возвращает часть URL-адреса после косой черты NOT, включая параметры строки поиска (после знака вопроса)

$location.url возвращает весь 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. В вашем случае нет параметров поиска, поэтому оба они возвратят то же самое.

Ответ 2

$location.path() позволяет вам извлечь определенную часть вашего файла в зависимости от вашей строки поиска после косой черты и исключить параметры, которые я предполагаю. И если у вас нет строки поиска, она работает так же, как и метод $location.url().