2016-10-03 7 views
0

IISでは、WebアプリケーションはWebサイトのアプリケーションで実行されます。そのため、www.example.comにアクセスする代わりに、実際にはwww.example.com/somepath/になります。角で#を始める前のパスを取得する方法

window.location.pathnameを使用すると、/somepath/部分に手を差し伸べることができますが、角度の$location.path()は何も得られません。公式の文書からは、$location.path()のように、ハッシュの後に来るものだけを取得する必要があります。 は私に/nextbitを与えます。

ウェブサイトのホスティングされている実際のパスに手を差し伸べるにはどうすればよいですか?

+0

可能性のある重複した後、URLの一部を取得する一方で、[、全体のURLを取得しますウェブブラウザで現在のURLを取得](http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser) – Ryan

+0

'absUrl'は必要なものです。 – Casey

+0

@ライアンいいえ、これは違います。私は完全なURLを探していません(absUrlは完全な答えになります)。これは特に、ページではなくサイトのパスを取得することに関するものです。私の例では、目的は '/ somepath /'を得ることですが、location.hrefは完全なパスを与えます。 –

答えて

2

あなたは角度$locationサービスを使用して、それをやりたいように、この方法を試してください。

var baseUrl = $location.absUrl().replace('#/' + $location.url(), ''); 

absUrl()url()はの​​

0

ハッシュの前に来る情報は、Angularの内部動作には関係ないと考えられているので、Angularの内部メソッド($location)をバイパスすることはこの場合には悪いことではないと思います。

それはまだ動作しますので、私は、あなたのオリジナルの前提となるだろう:

location.pathname 

あなたが持つべきではありません前にそのパスを取得するに発射した角度の内部バインディング(心配している場合を除き静的なIISアプリケーションパスに影響する)、これは問題ありません。

+0

テストを書くつもりなら、$ locationを使うのが良いでしょう。 – Casey

関連する問題