嗨我有离子登录和退出的问题。
每次退出后,我仍然可以点击后退按钮,它会将我带回上一页。我可以知道如何在注销时清除或删除会话,以便用户无法从登录页面返回上一页吗?
var default_stat;
$scope.logout = function(){
$ionicLoading.show({template:'Logging out....'});
$localstorage.set('loggin_state', '');
$state.go('login');
$ionicLoading.hide();
$ionicHistory.clearHistory();
$ionicHistory.clearCache();
};
在登录期间我使用localstorage来表示用户已登录
$localstorage.set('loggin_state', '1');
答案 0 :(得分:14)
我会做这样的事情:
$scope.logout = function(){
$ionicLoading.show({template:'Logging out....'});
$localstorage.set('loggin_state', '');
$timeout(function () {
$ionicLoading.hide();
$ionicHistory.clearCache();
$ionicHistory.clearHistory();
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
$state.go('login');
}, 30);
};
我发现添加一点延迟允许$ionicHistory
清除缓存。
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
答案 1 :(得分:5)
$ionicHistory.clearCache()
现在返回promise,因此您可以确保清除缓存。所以你可以这样打电话:
$ionicHistory.clearCache().then(function() {
//now you can clear history or goto another state if you need
$ionicHistory.clearHistory();
$ionicHistory.nextViewOptions({ disableBack: true, historyRoot: true });
$state.go('login');
})
没有必要像上面那样超时。
答案 2 :(得分:2)
这是因为ionic
正在缓存视图,因此这将阻止离子通过控制器。
所以你可以按如下方式破坏缓存
<ion-view cache-view="false" view-title="My Title!">
...
</ion-view>