I am new to mobile application development with ionic and wanted to know
I have a scenario where the login / logout buttons are located in the menu and a simple
On login and logout I need reload the page, inorder to refresh the data, however
$state.go('mainPage')
takes the user back to the view without reload. the controller behind it is never invoked.
Is there a way to do clear history and reload the state in ionic ?
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!
The correct answer:
$window.location.reload(true);
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: http://stackoverflow.com/a/30224972/756177