首页 文章

当切换选项卡时,带有侧边菜单的离子导航视图会丢失历史记录

提问于
浏览
0

我正在尝试将原生应用程序迁移到Ionic,但我遇到了一个主要问题,如果我至少无法解决它,那几乎肯定是一个阻碍 .

基本上,我有一个带有多个选项卡的应用程序,每个选项卡都有一个拆分视图 . 我附上了一个plunker来演示简化的应用程序版本 . 我的问题是,当切换标签时,离子导航视图不会保留其历史记录 . 更具体地说明我的示例:从侧面菜单中选择播放列表并将选项卡切换到“搜索”然后再返回“播放列表”后,该选项卡上的导航历史记录不会保留并重置为“根”状态 .

我认为当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'
      }
    }
  });

这是一个应用程序的plunker:http://plnkr.co/edit/UZp3EE3l6X5IIdvpu477

谢谢!

1 回答

  • 0

    根据This other question,每次浏览选项卡时,它都会创建一个新的历史记录,因此无法返回 . 您需要使用自己的代码处理此问题 . 他们建议直接使用goBack() . 就像是:

    $ionicHistory.viewHistory().backView
    

    此外,由于您刚刚登录到应用程序,因此在没有backView时需要处理此案例 .

相关问题