我尝试将原生应用迁移到Ionic,但我遇到了一个主要问题,如果我至少无法解决这个问题,那几乎肯定是一个阻碍。
基本上,我有一个带有多个标签的应用程序,每个标签都有一个拆分视图。我附上了一个plunker来演示简化的应用程序版本。我的问题是,当切换标签时,离子导航视图不会保留其历史记录。更具体地说明我的例子:从侧面菜单中选择播放列表并将标签切换到"搜索"然后回到"播放列表",该选项卡上的导航历史记录不会被保留并重置为其" root"状态。
我认为当ion-nav-view元素不是ion-tab元素的直接子元素时会发生这种情况(在我的情况下,因为它在离子侧菜单内容中),但是我不太确定。
总的来说,我觉得这个例子中的app状态也可能需要一些爱。我做错了什么?这是一种已知的离子限制吗?
状态提供程序配置如下,以下是完整的plunker示例的链接:
$stateProvider
.state('tabs', {
url: '/app',
abstract: true,
templateUrl: 'tabs.html',
controller: 'AppCtrl'
})
.state('tabs.search', {
url: '/search',
views: {
'search': {
templateUrl: 'search.html'
}
}
})
.state('tabs.playlists', {
url: '/playlists',
views: {
'menu': {
templateUrl: 'playlists.html',
controller: 'PlaylistsCtrl'
},
'menuContent': {
templateUrl: 'empty.html'
}
}
})
.state('tabs.playlist', {
url: '/playlists/:playlistId',
views: {
'menu': {
templateUrl: 'playlists.html',
controller: 'PlaylistsCtrl'
},
'menuContent': {
templateUrl: 'playlist.html',
controller: 'PlaylistCtrl'
}
}
});
以下是该应用的一名新手:http://plnkr.co/edit/UZp3EE3l6X5IIdvpu477
谢谢!
答案 0 :(得分:0)
根据This other question,每次浏览选项卡时,它都会创建一个新的历史记录,因此无法返回。您需要使用自己的代码处理此问题。他们建议直接使用 goBack()。类似的东西:
$ionicHistory.viewHistory().backView
此外,当没有backView时你需要处理这个案例,因为你刚登录到应用程序。