从离子的历史中删除前向视图

时间:2016-08-31 11:16:28

标签: angularjs ionic-framework hybrid-mobile-app

我需要从历史记录中删除特定视图,特别是forwardView。 我的情况/导航是这样的:
ion1 - > ion3 - > (stateParam A发送到视图) ion5 - > ion3 - > (stateParam B发送到视图) ion5 - > ion7 - > ion5 ,我从历史记录中结束了之前的ion5视图(带有stateParam A) 我知道如果我在ion5上使用缓存视图,则不会出现此问题,但由于其他原因,我无法在此处使用缓存视图。

我想要做的是在第一次回到ion3时从历史堆栈中删除forwardView(ion5),所以一个新的ion5 *(它将得到其他数字,但供参考)视图与正确的stateParam是保存在历史中。然后,当我导航到ion7并返回时,右侧ion5 *从历史中恢复。

我认为removeBackView不适用于此处,也不适用于位置替换。

1 个答案:

答案 0 :(得分:0)

我意识到这个问题已经快一年了,但我自己遇到了类似的问题,所以我想我会回答它。我建议您使用$ionicView.afterLeave,然后使用$ionicHistory.currentStateName()查看您到达的视图。

一旦满足您的条件,您就可以使用$ionicHistory.clearHistory()删除前视图(以及后视图)。这不会影响$stateParams。遗憾的是,没有办法只删除前视图,你也必须删除后视图。

我会尝试为你的情况写一个例子:

在ion5的控制器中:

$scope.$on('$ionicView.afterLeave', function(event, data) {
    if ($ionicHistory.currentStateName() === 'ion3') {
        $ionicHistory.clearHistory();
    }
});