Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在历史堆栈和离子选项卡之间导航_Angularjs_Angular Ui Router_Ionic Framework - Fatal编程技术网

Angularjs 在历史堆栈和离子选项卡之间导航

Angularjs 在历史堆栈和离子选项卡之间导航,angularjs,angular-ui-router,ionic-framework,Angularjs,Angular Ui Router,Ionic Framework,我目前有一个问题,我有一个应用程序,它有4个离子标签,每个标签都有自己的历史堆栈。我现在遇到了一个问题,即我从选项卡a=>B导航,选项卡B被移动到选项卡B的内部页面,但无法导航回并重置选项卡B上的历史记录,因此当我返回到选项卡a时,我可以将选项卡B的历史记录重置为选项卡B的根。如果我没有弄错,更改选项卡时是否要清除选项卡中的导航堆栈?因此,请看一下以下方法: 取消选择时,有一个回调。您可以使用它来调用控制器中的函数,以清除历史记录。例如,您的html页面如下所示: <ion-tab tit

我目前有一个问题,我有一个应用程序,它有4个离子标签,每个标签都有自己的历史堆栈。我现在遇到了一个问题,即我从选项卡a=>B导航,选项卡B被移动到选项卡B的内部页面,但无法导航回并重置选项卡B上的历史记录,因此当我返回到选项卡a时,我可以将选项卡B的历史记录重置为选项卡B的根。

如果我没有弄错,更改选项卡时是否要清除选项卡中的导航堆栈?因此,请看一下以下方法:

取消选择时,
有一个回调。您可以使用它来调用控制器中的函数,以清除历史记录。例如,您的html页面如下所示:

<ion-tab title="xyz" href="#/tab/whatever" on-deselect="clearHistory()">
   ...
</ion-tab>
这将在离开前清除当前选项卡的导航堆栈。我用ionic tabs启动程序模板测试了它,它对我有效


我希望这是你的问题。如果没有,请给我留言,我会再看一次。

谢谢你的回复,很遗憾,这不是我想要的,但你所说的将是有用的。ATM我正在打开选项卡a上的模式链接到选项卡B,然后我需要返回到选项卡a并清除选项卡B上的历史记录。谢谢。我想这会清除历史记录,但不会让我回到选项卡A。要导航到另一个选项卡,只需使用
$IonicAbsDelegate.select(index)
。非常感谢,我整天都在为这个问题挠头。将解决我的问题,谢谢。正如这里添加的额外功能一样,我在抽象状态下使用一个名为app controller的主控制器,为了访问嵌套视图控制器,只需使用$scope广播一个选项卡取消选择。$broadcast('tabDeselect');在子控制器中侦听,然后触发历史重置。在这之后的一段时间里,你可以创建一个解析函数,在state config部分捕获以前的状态,然后在收听广播时,你可以在销毁历史记录之前检查你来自的状态。我发现在选项卡之间导航时,这也很烦人。该解决方案不能完全满足我的要求,我最终为每个可能导航到它的选项卡复制了内部选项卡视图的路由状态。这不是一个优雅的解决方案,但在imo中做得更好。
.controller('TestCtrl', function($scope, $ionicHistory) {
   $scope.clearHistory = function() {
      $ionicHistory.clearHistory();
   }
})