Angularjs 爱奥尼亚/安格拉斯。重定向到另一个选项卡

Angularjs 爱奥尼亚/安格拉斯。重定向到另一个选项卡,angularjs,tabs,ionic-framework,Angularjs,Tabs,Ionic Framework,我已经创建了一个带有标签的基本应用程序。我的应用程序中有两个选项卡:“新建”和“显示” 在“新建”选项卡中时,我重定向到“显示”选项卡中的项目:#/tab/DISPLAY/1 然后,当我单击“显示”选项卡时,或者如果我单击“新建”选项卡,然后再次单击“显示”选项卡,则会显示相同的项目页面,并且“显示”选项卡使用的是DisplayItemCtrl而不是DisplayCtrl。换句话说,我无法返回原始显示页面(#/tab/DISPLAY) 有没有办法清除历史或其他方法来解决这个问题 如果我在转到新选

我已经创建了一个带有标签的基本应用程序。我的应用程序中有两个选项卡:“新建”和“显示”

在“新建”选项卡中时,我重定向到“显示”选项卡中的项目:#/tab/DISPLAY/1

然后,当我单击“显示”选项卡时,或者如果我单击“新建”选项卡,然后再次单击“显示”选项卡,则会显示相同的项目页面,并且“显示”选项卡使用的是DisplayItemCtrl而不是DisplayCtrl。换句话说,我无法返回原始显示页面(#/tab/DISPLAY)

有没有办法清除历史或其他方法来解决这个问题

如果我在转到新选项卡页面创建项目之前先访问显示选项卡页面,它会起作用,就像缓存了路线一样,但是如果我在启动应用程序并创建新项目时不访问显示页面,它将不起作用

以下是我的国家:

.state('tab.new', {
  url: '/new',
  views: {
    'tab-new': {
      templateUrl: 'templates/tab-new.html',
      controller: 'NewCtrl'
    }
  }
})

.state('tab.display', {
  url: '/display',
  views: {
    'tab-display': {
      templateUrl: 'templates/tab-display.html',
      controller: 'DisplayCtrl'
    }
  }
})

.state('tab.display-item', {
  url: '/display/:id',
  views: {
    'tab-display': {
      templateUrl: 'templates/display-item.html',
      controller: 'DisplayItemCtrl'
    }
  }
})

我在codepen上创建了一个简单的tabs应用程序来显示这个问题。首先转到Dash,然后单击“重定向到朋友”。之后,将无法访问“朋友”选项卡的起始页

您是否尝试从选项卡进行状态重定向

例如:


参见文档



创建一个函数,
onTabSelected
,在单击选项卡时调用该函数,以便ui路由器不管理它

这是一篇旧文章,但我仍然找到了解决方法,如果有人遇到此问题,请查看我的

包括将
ng click=“onTabSelected()”
放入选项卡和分配给选项卡的控制器中:

$scope.onTabSelected = function () {
    $state.go("tab.home");
}

这样,每次触摸标签都会导致我想要的状态,而不是第一次显示的状态或其他任何状态,我希望这对某些人有用,导致问题的行为看起来真的像是爱奥尼亚的一个bug。

现在就尝试了,没有任何区别。仍然不起作用。在DisplayCtrl和DisplayItemCtrl中创建了$rootScope.onTabSelected函数,并使用了$state.go('tab.display'),但如果我转到'tab.display',则仍然使用#/tab/display/1路径,因为此页面在#/tab/display路径之前访问过。
$scope.onTabSelected = function () {
    $state.go("tab.home");
}