我需要从历史记录中删除特定视图,特别是forwardView。
我的情况/导航是这样的:
ion1 - > ion3 - > (stateParam A发送到视图) ion5 - > ion3 - > (stateParam B发送到视图) ion5 - > ion7 - > ion5 ,我从历史记录中结束了之前的ion5视图(带有stateParam A)
我知道如果我在ion5上使用缓存视图,则不会出现此问题,但由于其他原因,我无法在此处使用缓存视图。
我想要做的是在第一次回到ion3时从历史堆栈中删除forwardView(ion5),所以一个新的ion5 *(它将得到其他数字,但供参考)视图与正确的stateParam是保存在历史中。然后,当我导航到ion7并返回时,右侧ion5 *从历史中恢复。
我认为removeBackView不适用于此处,也不适用于位置替换。
答案 0 :(得分:0)
我意识到这个问题已经快一年了,但我自己遇到了类似的问题,所以我想我会回答它。我建议您使用$ionicView.afterLeave
,然后使用$ionicHistory.currentStateName()
查看您到达的视图。
一旦满足您的条件,您就可以使用$ionicHistory.clearHistory()
删除前视图(以及后视图)。这不会影响$stateParams
。遗憾的是,没有办法只删除前视图,你也必须删除后视图。
我会尝试为你的情况写一个例子:
在ion5的控制器中:
$scope.$on('$ionicView.afterLeave', function(event, data) {
if ($ionicHistory.currentStateName() === 'ion3') {
$ionicHistory.clearHistory();
}
});