Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取当前ui路由器状态的完整url?_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 如何获取当前ui路由器状态的完整url?

Javascript 如何获取当前ui路由器状态的完整url?,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我正在为AngularJS使用ui路由器;我正在处理“$stateChangeSuccess”事件,并尝试获取当前状态的完整路径(在“#”之后)$location.hash()返回一个空字符串,$state.url仅返回路径中应用于嵌套状态的部分 我的完整路径#/a/b $state.url == "/b" $locadtion.hash() == "" 如何获取#/a/b或/a/b?您可以随时使用: window.location 或: (如果这是您想要的)。您尝试过$location.

我正在为AngularJS使用ui路由器;我正在处理
“$stateChangeSuccess”
事件,并尝试获取当前状态的完整路径(在“#”之后)
$location.hash()
返回一个空字符串,
$state.url
仅返回路径中应用于嵌套状态的部分

我的完整路径
#/a/b

$state.url == "/b"
$locadtion.hash() == ""
如何获取
#/a/b
/a/b

您可以随时使用:

window.location 
或:


(如果这是您想要的)。

您尝试过$location.url()吗?这应该包括散列。事实上,我的测试显示它没有抓取散列


另一方面,您可能希望在$locationProvider中设置HTML5模式。

尝试将URI部分连接在一起

window.location.origin+window.location.pathname+window.location.hash


PS:在Firefox上不起作用:(

您应该收听
$locationchangesuccessuccess
事件


在那里,您可以使用
$location.path()
window.location.hash
取决于您的需要。

HTML5模式对解决方案有帮助吗,还是只是一种更好的做法?如果有,优势是什么?答案解释了它的作用以及为什么它可能比我更重要。为了更好地回答您的问题,我使用它的原因是为了摆脱url栏中出现的#。
window.location.hash