2015-09-17 5 views
19

ich diese Anrufe gesehen habe:

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

und

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

Es scheint, sie das Gleiche tun .
Aus der Dokumentation habe ich gefunden, dass die URL z. /path?a=b#hash und Pfad ist ein Teil der URL.

Gibt es einen Unterschied, welche diese Setter zu verwenden ($location.path oder $location.url) bei dem gleichen Argumente?

+0

nicht, wenn Sie keine Suchzeichenfolgen verwenden. Sie sind nicht in 'Pfad' enthalten. – charlietfl

Antwort

36

$location.path gibt den Teil der URL nach dem Schrägstrich einschließlich NOT-String-Parameter-Suche (nach dem Fragezeichen)

$location.url gibt die gesamte URL nach dem Schrägstrich, einschließlich Such-String-Parameter.

Zum Beispiel, sagen wir, Sie diese URL haben

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

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

$location.path kehrt /some/path

Diese beiden Funktionen sowohl die Funktion als setters und getters.

Url ist im Grunde Path + search strings. In Ihrem Fall gibt es keine Suchparameter, so dass beide dasselbe zurückgeben.

+0

Danke! Bitte beachte, dass ich nach Settors frage. – naXa

+1

Da Sie die gleichen Setter ohne Suchparameter verwenden, gibt es keinen Unterschied. –

2

$location.path() können Sie einen bestimmten Teil Ihrer abhängig von Ihrem Suchbegriff nach dem Schrägstrich extrahieren und ohne die Parameter, die ich denke. Und wenn Sie keine Suchzeichenfolge haben, funktioniert es genauso wie die Methode $location.url().

+0

Danke! Bitte beachte, dass ich nach Settors frage. – naXa

Verwandte Themen