2015-09-08 6 views
7

角度アプリケーションはディレクトリ 'someApp'にあります。いくつかの州のURLのURLはhttp://example-domain/someApp/#/で、パスはhttp://example-domain/someApp/#/user/loginです。そこに私は「角度の道」http://example-domain/someApp/

var redirectUri = $location.absUrl(); 
redirectUri = redirectUri.substr(0, redirectUri.indexOf('#')); 

答えて

7

この部分を取得する最も簡単な方法は、使用した場合でも、これは全体のベースURLを提供しますhttp://example-domain/someApp

を返します

window.location.origin + window.location.pathname 

を使用することです仮想ディレクトリ/パス しかし、IEは原点をサポートしていません。その結果、あなたはあなたがそうのようなベースディレクトリを与えるために、URLのコンポーネントを連結できます。仮想ディレクトリを使用している場合http://example-domain/someApp

を返します

window.location.protocol + "//" + window.location.hostname + window.location.pathname 

を、あなたは$location.path()以来、$locationを使用して難しさを持っていますハッシュの後に返され、$location.host()は、ドメインとディレクトリではなく、ドメインを返します。これはwindow.location.hostname + window.location.pathnameがあなたに与えるものです。

+0

Downvoter、お世話になりますか? –

+0

偉大な答え、私はちょうどnonstartartポートを使用する場合はhostnameの代わりにwindow.location.hostを使用します。 – Julien

3

あなたが使用する必要があります。

location.origin + location.pathname 

は、URLが

を参照してくださいhttp://example.com/#/some/path?foo=bar &バズ= XOXO

$location.protocol(); // will give: http 
$location.host();  // will give: example.com 
location.host   // will give: example.com:8080 
$location.port();  // will give: 8080 
$location.path();  // will give: /some/path 
$location.url();  // will give: /some/path?foo=bar&baz=xoxo 
であると言います完全 detail

+2

私はそれを知っています。私のURLが 'http://example.com/myApp/#/some/path?foo = bar&baz = xoxo'で、' http:// example.com/myApp'が必要な場合はどうなりますか? – Styx

関連する問題