web-dev-qa-db-fra.com

$ location.path (chemin) vs $ location.url (url) dans AngularJS

J'ai vu ces appels:

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

et

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

Il semble qu'ils font la même chose.
D'après la documentation, j'ai trouvé que l'URL est par exemple /path?a=b#hash, et le chemin fait partie de l'URL.

Y a-t-il une différence qui parmi ces setters à utiliser ($location.path ou $location.url) en cas de même argument?

25
naXa

$location.path renvoie la partie de l'URL après la barre oblique N'INCLUANT PAS les paramètres de chaîne de recherche (après le point d'interrogation)

$location.url renvoie l'URL complète après la barre oblique, y compris les paramètres de chaîne de recherche.

Par exemple, supposons que vous ayez cette URL

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

$location.url résultats /some/path?foo=bar&baz=xoxo

$location.path résultats /some/path

Ces deux fonctions agissent à la fois setters et getters.

Url est essentiellement Path + search strings. Dans votre cas, il n'y a pas de paramètres de recherche, donc les deux renverront la même chose.

42
Richard Hamilton

$location.path() vous permet d'extraire une partie spécifique de votre en fonction de votre chaîne de recherche après la barre oblique et en excluant les paramètres je suppose. Et si vous n'avez pas de chaîne de recherche, cela fonctionne de la même manière que la méthode $location.url().

2
Shubham Aggarwal