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

混江龙づ霸主 提交于 2020-01-02 10:29:05

问题


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.


回答1:


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.




回答2:


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/



来源:https://stackoverflow.com/questions/29841166/reset-unload-controller-after-changestate-logout-called-angularjs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!