AngularJS$location在散列之前获取路径

AngularJS$location在散列之前获取路径,angularjs,Angularjs,我需要在AngularJS应用程序中提取#之前的路径,例如,如果我的应用程序url为: http://www.domain.com/folder/app/#/home 我只需要得到这部分: http://www.domain.com/folder/app/ 我尝试使用$location.path、$location.abspath,但找不到任何函数可以在#之前获得第一部分。有人能帮我告诉我这里缺少什么吗?如果有办法获取url的第一部分(在#之前)?谢谢您可以将路径拆分为路径名和散列部分,然后

我需要在AngularJS应用程序中提取#之前的路径,例如,如果我的应用程序url为:

http://www.domain.com/folder/app/#/home
我只需要得到这部分:

http://www.domain.com/folder/app/

我尝试使用$location.path、$location.abspath,但找不到任何函数可以在#之前获得第一部分。有人能帮我告诉我这里缺少什么吗?如果有办法获取url的第一部分(在#之前)?谢谢

您可以将路径拆分为路径名和散列部分,然后仅使用路径名:

$location.absUrl().split('#')[0]
// "http://www.example.com/folder/app/"
split
只是一个返回数组的Javascript字符串操作:

'http://www.example.com/folder/app/#/home'.split('#')
["http://www.example.com/folder/app/", "/home"]

@MattWay我正在尝试使用AngularJS$location获取它,非常感谢,但是使用$location.path().split(“#”)[0]它返回url的第二部分,即在“#”之后,换句话说/home,我在这里遗漏了什么吗?感谢使用$location.abspath().split(“#”)[0]thanks@MChan-
$location.path().split(“#”)[0]
不起作用,因为它只返回哈希后的url部分。因此,split只是返回一个包含原始字符串的单元素数组——即路径(因为未找到哈希字符)。看起来像是输入错误,应该是
$location.absUrl().split('#')[0]