Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clear History and Reload Page on Login/Logout Using Ionic Framework

I am new to mobile application development with Ionic. On login and logout I need to reload the page, in order to refresh the data, however, $state.go('mainPage') takes the user back to the view without reloading - the controller behind it is never invoked.

Is there a way to clear history and reload the state in Ionic?

like image 261
frictionlesspulley Avatar asked Aug 07 '14 21:08

frictionlesspulley


2 Answers

Welcome to the framework! Actually the routing in Ionic is powered by ui-router. You should probably check out this previous SO question to find a couple of different ways to accomplish this.

If you just want to reload the state you can use:

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

If you actually want to reload the page (as in, you want to re-bootstrap everything) then you can use:

$window.location.reload(true) 

Good luck!

like image 141
JimTheDev Avatar answered Sep 20 '22 13:09

JimTheDev


I found that JimTheDev's answer only worked when the state definition had cache:false set. With the view cached, you can do $ionicHistory.clearCache() and then $state.go('app.fooDestinationView') if you're navigating from one state to the one that is cached but needs refreshing.

See my answer here as it requires a simple change to Ionic and I created a pull request: https://stackoverflow.com/a/30224972/756177

like image 30
ABCD.ca Avatar answered Sep 18 '22 13:09

ABCD.ca