如何在#角度之前获得路径
问题描述:
在IIS中,我的web应用程序在网站下的应用程序中运行。因此,它不是在www.example.com
可访问,它实际上在www.example.com/somepath/
。如何在#角度之前获得路径
如果我使用window.location.pathname
,我可以在/somepath/
部分获得我的手,但是对于Angular的$location.path()
,我什么也没得到。从官方文档看,似乎$location.path()
应该只能得到散列之后的任何内容,例如www.example.com/somepath/#/nextbit
会给我/nextbit
。
那么我该如何获得网站托管的实际路径?
答
当你想要做的采用了棱角分明$location
服务它,试试这个:
var baseUrl = $location.absUrl().replace('#/' + $location.url(), '');
absUrl()
会得到整个URL,而url()
会后
答
由于散列之前发出的信息与Angular的内部运作并不完全相关,我不认为绕过Angular的内部方法($location
)在这种情况下是不好的做法。
我会去与你原来的假设,因为它仍然可以工作:
location.pathname
除非你是担心内部角的绑定已经解雇之前得到这条道路(这不应该有影响静态的IIS应用程序路径),这应该没问题。
+0
如果您打算编写任何测试,最好使用$ location。 – Casey
的可能的复制得到的URL的一部分[在Web浏览器中获取当前网址](http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser) – Ryan
'absUrl'就是你需要的。 – Casey
@瑞恩不,这是不同的。我不是在寻找完整的网址(那么absUrl就是完整的答案)。这特别是关于获取网站的路径,而不是页面。在我的例子中,目标是获得'/ somepath /',而location.href将提供完整的路径。 –