离子/ AngularJS。重定向到另一个标签

时间:2014-07-08 19:52:42

标签: angularjs tabs ionic-framework

我创建了一个带标签的基本应用。我的应用程序中有两个选项卡,NEW和DISPLAY。

当我在新标签页中时,我会重定向到DISPLAY标签中的项目:#/ tab / display / 1

然后当我单击DISPLAY选项卡,或者如果我再次单击NEW选项卡然后再单击DISPLAY选项卡时,将显示相同的项目页面 - 并且DISPLAY选项卡使用DisplayItemCtrl而不是DisplayCtrl。换句话说,我无法回到原来的DISPLAY页面(#/ 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上创建了一个简单的标签应用程序,以显示问题。 http://codepen.io/anon/pen/GInjq首先转到Dash,然后点击"重定向到朋友"。之后,将无法访问“朋友”选项卡开始页面。

3 个答案:

答案 0 :(得分:1)

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

包括将ng-click="onTabSelected()"放入选项卡以及分配给选项卡的控制器中:

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

这样,总是触摸标签会导致我想要的状态,而不是第一次显示或者其他什么,我希望它对某人有用,给出问题的行为看起来真的像离子中的错误。

答案 1 :(得分:0)

您是否尝试过标签中的状态重定向?

例如:

<ion-tab title="Contact" icon="ion-ios7-world" ui-sref="tab.display"> <ion-nav-view name="contact-tab"></ion-nav-view> </ion-tab>

答案 2 :(得分:0)

参见文档

http://ionicframework.com/docs/api/directive/ionTab/

<ion-tab
  title="Tab!"
  icon="my-icon"
  href="#/tab/tab-link"
  on-select="onTabSelected()"
  on-deselect="onTabDeselected()">
</ion-tab>

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