我创建了一个带标签的基本应用。我的应用程序中有两个选项卡,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,然后点击"重定向到朋友"。之后,将无法访问“朋友”选项卡开始页面。
答案 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不管理它