带有父母和子女状态的离子后退按钮

时间:2016-07-05 07:02:36

标签: angularjs ionic-framework angular-ui-router state

我有一个带有以下ui-router设置的离子应用程序,其中locations状态是2个状态mapfavourites的父级。 updates状态是一种详细信息页面,可以从任何州访问。

.state('locations', {
  abstract: false,
  cache: true,
  url: '/locations',
  templateUrl: 'templates/locations.html',
  controller: 'LocationsCtrl'
})
.state('locations.favourites', {
  cache: true,
  url: '/favourites',
  templateUrl: 'templates/locations.favourites.html',
  controller: 'LocationsFavouritesCtrl'
})
.state('locations.map', {
  cache: true,
  url: '/map',
  templateUrl: 'templates/locations.map.html',
  controller: 'LocationsMapCtrl'
})
.state('updates', {
  cache: true,
  url: '/updates/:place_id',
  templateUrl: 'templates/updates.html',
  controller: 'UpdatesCtrl',
  params: {'place_id': 'undefined'}
})


  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/locations/map');

这是HTML

  <body ng-app="app" animation="slide-left-right-ios7">
<div>
    <div>
        <ion-nav-bar class="bar-turq">
            <ion-nav-back-button class="button-icon icon ion-ios-arrow-back light"></ion-nav-back-button>
        </ion-nav-bar>
        <ion-nav-view></ion-nav-view>
    </div>
</div>

这完全有效,除了“更新”状态的后退按钮总是返回locations.map而不是记住之前的状态,即我可能来自locations.favourites。我的设置是否存在根本性的问题?

**

  • 更新:

**

好的,所以在 UpdatesCtrl 中我添加了此代码来检查查看历史记录,无论我从哪里访问 / updates 视图,后视图都是 locations.map

$scope.$on('$ionicView.enter', function() {
    console.log($ionicHistory.viewHistory());
}

1 个答案:

答案 0 :(得分:0)

删除此参数:{'place_id':'undefined'}或确保通过$ stateparams.place_id中的place_id传递

我认为你结束的是未知状态(未解决)并进入默认状态。

您尚未发布默认位置路线。但我假设它有这个配置:$ urelRouterProvider.ohterwise('/ location.map');