2015-09-17 18 views
19

widziałem tych połączeń:

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

i

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

Wydaje się, że robią to samo .
Z dokumentacji wynika, że ​​URL to np. /path?a=b#hash, a ścieżka jest częścią adresu URL.

Czy jest jakaś różnica, która z tych ustawiaczy użyć ($location.path lub $location.url) w przypadku tego samego argumentu?

+0

nie, jeśli nie używasz ciągów wyszukiwania. Nie są one uwzględnione w 'ścieżce' – charlietfl

Odpowiedz

36

$location.path zwraca część adresu URL po ukośniku nie w tym parametrów łańcuch wyszukiwania (po znaku zapytania)

$location.url powraca cały adres URL po ukośniku, w tym parametrów wyszukiwania smyczkowych.

Na przykład, powiedzmy, że masz ten adres

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

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

$location.path zwraca /some/path

Te dwie funkcje pełnić zarówno setters i getters.

Url jest w zasadzie Path + search strings. W twoim przypadku nie ma parametrów wyszukiwania, więc obie z nich zwrócą to samo.

+0

Dziękujemy! Proszę pamiętać, że pytam o setery. – naXa

+1

Ponieważ używasz tych samych ustawników bez parametrów wyszukiwania, nie ma różnicy. –

2

pozwala na wyodrębnienie określonej części w zależności od ciągu wyszukiwania po ukośniku i wykluczeniu parametrów, jak sądzę. A jeśli nie masz ciągu wyszukiwania, to działa tak samo, jak robi to metoda $location.url().

+0

Dziękujemy! Proszę pamiętać, że pytam o setery. – naXa