我有我的应用程序,您需要登录才能进入其他页面。
所以第一页是"登录"并检查您是否已经登录,如果是,您将被重定向到主页应用程序,否则它将显示登录页面。
现在的问题是,当用户在记录的页面区域内时,他点击回来,他将进入"登录"页面,然后重定向回主页,因为他已登录。
所以他陷入无限循环。
如何从历史记录中删除登录页面。
就像在android" android中删除历史堆栈中的活动"
答案 0 :(得分:34)
这是解决方案!
只需使用:
$ionicHistory.nextViewOptions({
disableBack: true
});
登录功能示例:
$scope.login = function () {
Security.login($scope.cred.email, $scope.cred.password)
.success(function(data) {
Security.setUser(data.data[0]);
$ionicHistory.nextViewOptions({
disableBack: true
});
$state.go('posts', {}, {location: "replace", reload: true});
}).error(function(data) {
$scope.showAlert();
});
};
答案 1 :(得分:22)
对于纯粹的AngularJS方法来实现此目的(而不是其他答案中的离子或javascript),请使用$ location服务的replace()方法(documentation):
像往常一样使用$location.url('/newpath');
或$location.path('/newpath');
进行角度重定向。然后在它之后添加$location.replace();
。或者您可以链接这样的命令:
$location.url('/newpath').replace();
答案 2 :(得分:3)
快速搜索:https://stackoverflow.com/a/8969975/185672
回答:
而不是使用window.location = url;
重定向,
尝试window.location.replace(url);
。
使用replace()后,当前页面将不会保存在会话中 历史记录,意味着用户无法使用“后退”按钮 导航到它。