Reset/Unload Controller after ChangeState (logout called) . AngularJS
Asked Answered
U

2

2

I am Creating an app where the user can login from FaceBook or Twitter. After login, the user is directed to some HomePage. And here, controller loads and my initial function is called which loads data specific to that user.

When user clicks on Log Out. The tokens are cleared and user is directed to SignIn Page. Now without closing the app, if the user SignIn again using twitter, The user is directed to same homepage. The Scope of that controller has the same data. I know Ionic uses cache to improve performance. but I just want a way to clear that cache only when user clicks on logout button.

Undecided answered 24/4, 2015 at 7:23 Comment(0)
U
6

I found a solution, we need to clear cache in next/other digest cycle. By using $timeout we can achieve this. Something like this.

$scope.logout = function(){
      $location.path('/signin')
      $timeout(function () {
          $ionicHistory.clearCache();
          $ionicHistory.clearHistory();
          $log.debug('clearing cache')
      },300)
}

Edit: Give some milliseconds to clear functions at it works great.

Undecided answered 3/6, 2015 at 6:42 Comment(1)
I was having the same issue and adding the $timeout solved it. Thank you!Taligrade
S
1

You can handle this by calling the $ionicHistory.clearCache() method, to clear the old caches. You could also call $ionicHistory.clearHistory() to reset the history so it is like a fresh session.

http://ionicframework.com/docs/api/service/$ionicHistory/

Scandian answered 24/4, 2015 at 14:9 Comment(1)
Sorry, but this does not clear the cache at all of the current state. (from where its called)Undecided

© 2022 - 2024 — McMap. All rights reserved.