私はこれらの呼び出しを見てきました:
$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
)同じ引数の場合?
$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つの関数は、setters
とgetters
の両方として機能します。
Url
は基本的にPath + search strings
です。あなたの場合、検索パラメータはないので、両方とも同じものを返します。
$location.path()
を使用すると、スラッシュの後の検索文字列に応じて特定の部分を抽出し、推測したパラメーターを除外できます。また、検索文字列がない場合は、$location.url()
メソッドと同じように機能します。