$ 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()
.