Domanda $ location.path (percorso) vs $ location.url (url) in AngularJS


Ho visto queste chiamate:

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

e

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

Sembra che stiano facendo la stessa cosa.
Dalla documentazione ho scoperto che l'URL è ad es. /path?a=b#hashe il percorso è una parte dell'URL.

C'è qualche differenza tra questi setter usare ($location.path o $location.url) in caso dello stesso argomento?


21
2017-09-17 15:10


origine


risposte:


$location.path restituisce la parte dell'URL dopo la barra NON includendo i parametri della stringa di ricerca (dopo il punto interrogativo)

$location.url restituisce l'intero URL dopo la barra, inclusi i parametri della stringa di ricerca.

Ad esempio, supponiamo di avere questo URL

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

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

$location.path ritorna /some/path

Queste due funzioni agiscono come entrambe setters e getters.

Url è fondamentalmente Path + search strings. Nel tuo caso, non ci sono parametri di ricerca, quindi entrambi restituiranno la stessa cosa.


39
2017-09-17 19:17



$location.path() ti permette di estrarre una parte specifica del tuo secondo la tua stringa di ricerca dopo la barra e escludendo i parametri che immagino. E se non hai una stringa di ricerca, allora funziona allo stesso modo di $location.url() il metodo fa.


2
2017-09-17 19:29