Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS ui-router: force reload

Tags:

I have an AngularJS app starting at index.html and using ui-router. Based on a trigger I want to reload the complete page. I tried:

$state.go($state.current, $stateParams, {     reload: true,     inherit: false,     notify: true }); 

But that does not work. It doesn't reload my initial index.html.

I can do:

window.location.href = "index.html"; 

But then I'm on my initial page, not the current state.

Should a set window.location.href to index.html with query string parameters specifying current location? If I do that, how can I navigate to this location?

like image 680
Serge van den Oever Avatar asked Apr 24 '14 00:04

Serge van den Oever


2 Answers

The current trick is:

$state.go($state.current.name, $state.params, { reload: true });

like image 96
SamLeBarbare Avatar answered Oct 04 '22 05:10

SamLeBarbare


Everybody seems to have ignored what Serge van den Oever appears to actually be asking, and that's that he wants entire page to reload, and not just the route.

The solution for that is pretty simple if you inject the $window service into your controller:

$window.location.reload(); 

If you just want the route to reload (which seems to be much more common), and are using ui-router, then just inject the $state service and do:

$state.reload(); 

This should reinitialize controllers now that the bug has been fixed, although I don't think it reinitializes resolves.

like image 44
Mordred Avatar answered Oct 04 '22 06:10

Mordred