带有侧菜单的Ionic导航视图在切换标签页时会丢失历史记录



我正试图将一个本地应用程序迁移到Ionic,但我遇到了一个主要问题,如果我不能至少解决它,这几乎肯定是一个障碍。

基本上,我有一个有多个选项卡的应用程序,每个选项卡都有一个分屏视图。我附上了一个柱塞来演示简化的应用程序版本会是什么样子。我的问题是,当切换选项卡,离子导航视图不保留他们的历史。更具体地说,我的例子是:从侧边菜单中选择播放列表,并将选项卡切换到"搜索",然后返回到"播放列表",该选项卡上的导航历史记录不保留,并被重置为其"根"状态。

我认为当ion-nav-view元素不是ion-tab元素的直接子元素时会发生这种情况(就像我的情况一样,因为它在ion-side-menu-content中),但我不太确定。

总的来说,我觉得这个例子中的应用状态可能也需要一些爱。我做错什么了吗?这是已知的离子极限吗?下面是状态提供商的配置,下面是完整的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

谢谢!

根据另一个问题,每次浏览一个选项卡时,它都会创建一个新的历史记录,所以没有返回。您需要用自己的代码来处理这个问题。他们建议直接使用goBack()。比如:

$ionicHistory.viewHistory().backView

另外,你需要处理没有backView的情况,因为你刚刚登录到应用程序。

最新更新