如何返回两个视图状态(如$ window.history.go(-2))?

ale*_*ods 7 javascript angularjs ionic-framework

在Ionic我可以回去使用:

var backView = $ionicViewService.getBackView();
backView && backView.go();
Run Code Online (Sandbox Code Playgroud)

问题是如何在backView之前进入视图?就像是:

var backBackView = $ionicViewService.getView(-2);
backBackView && backBackView.go();
Run Code Online (Sandbox Code Playgroud)

ale*_*ods 16

经过一些实验,我结束了下一个解决方案

var backView = $scope.$viewHistory.views[$scope.$viewHistory.backView.backViewId];
$scope.$viewHistory.forcedNav = {
    viewId:     backView.viewId,
    navAction: 'moveBack',
    navDirection: 'back'
};
backView && backView.go();
Run Code Online (Sandbox Code Playgroud)

它对我来说很糟糕,但成功地解决了这个问题.我希望这会对某人有所帮助.

更新:现在你可以打电话了

$ionicHistory.goBack(-2);
Run Code Online (Sandbox Code Playgroud)

ionic的文档中有描述.


小智 9

我发现以下是在视图堆栈中深入时最快的方法:

$ionicHistory.goBack();
Run Code Online (Sandbox Code Playgroud)

我相信你可以在循环中多次调用它以继续回到视图历史记录中.当然,你必须在控制器中注入$ ionicHistory.