如何在Angular中获取#之前的路径

时间:2016-10-03 14:24:09

标签: javascript angularjs

在IIS中,我的网络应用程序在网站下的应用程序中运行。因此,它不是www.example.com可访问的,而是www.example.com/somepath/

如果我使用window.location.pathname,我可以抓住/somepath/部分,但是使用Angular' $location.path()我什么也得不到。从官方文档中,似乎$location.path()应该只获得散列后的内容,例如www.example.com/somepath/#/nextbit会给我/nextbit

那么我如何获得托管网站的实际路径?

2 个答案:

答案 0 :(得分:2)

如果您想使用Angular $location服务,请尝试以下方法:

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

absUrl()将获取整个网址,而url()将获得#/之后的网址部分

答案 1 :(得分:0)

由于哈希之前的信息与Angular的内部工作方式不相关,我不认为绕过Angular的内部方法($location)会很糟糕在这种情况下练习。

我会按照你原来的假设,因为它仍然有效:

location.pathname

除非你担心Angular内部的绑定在获取该路径之前已被解雇(这不应该对静态的IIS应用程序路径产生影响),否则这应该没问题。