简体   繁体   中英

How can I get the full url of the current ui-router state?

I'm using ui-router for AngularJS; I'm handling the '$stateChangeSuccess' event, and trying to get the full path (after '#') for the current state. $location.hash() returns an empty string and $state.url returns only the portion of the path that applies to the nested state.

My full path #/a/b

$state.url == "/b"
$locadtion.hash() == ""

How can I get #/a/b or /a/b ?

You can always use:

window.location 

or:

window.location.hash 

(if that's what you want).

Have you tried $location.url()? That should include the hash. Actually, my test reveals that it doesn't grab the hash.

$location docs

As an aside, you may want to look into setting html5Mode in $locationProvider.

You should listen to the $locationChangeSuccess event.

There you can use $location.path() or window.location.hash depending on your needs.

try concatenating the URI parts together

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

PS: doesn't work on Firefox :(

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM