web-dev-qa-db-ja.com

AngularJSの$ location.path(path)vs $ location.url(url)

私はこれらの呼び出しを見てきました:

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

そして

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

彼らは同じことをしているようです。
ドキュメントから、URLはたとえば/path?a=b#hash、およびパスはURLの一部です。

これらのsettersのどちらを使用するかに違いはありますか($location.pathまたは$location.url)同じ引数の場合?

25
naXa

$location.pathは、検索文字列パラメーターを含まないスラッシュの後の部分(疑問符の後)を返します

$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を返します

これらの2つの関数は、settersgettersの両方として機能します。

Urlは基本的にPath + search stringsです。あなたの場合、検索パラメータはないので、両方とも同じものを返します。

42

$location.path()を使用すると、スラッシュの後の検索文字列に応じて特定の部分を抽出し、推測したパラメーターを除外できます。また、検索文字列がない場合は、$location.url()メソッドと同じように機能します。

2