2016-07-05 119 views
0

我有一個離子應用程序與以下ui路由器安裝程序,其中locations狀態是2狀態的父母mapfavouritesupdates狀態是一種詳細信息可以從任何狀態訪問的頁面。離子後退按鈕與父母和孩子的狀態

.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。我的設置有什麼根本性錯誤嗎?

**

  • UPDATE:

**

好了,所以裏面UpdatesCtrl我加入這個代碼來檢查觀看歷史,不管在哪裏我訪問/更新視圖,後視圖是locations.map

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

回答

0

刪除此PARAMS:{「place_id」:「未定義」}或確保您直通到$ place_id stateparams.place_id

我認爲你是在沒有未知狀態結束(未解決)並進入默認狀態。

您尚未發佈默認路徑。但我假設它有這個配置:$ urelRouterProvider.ohterwise('/ location.map');

+0

你的假設是正確的 - 我會嘗試並檢查。但我總是將place_id傳遞給「更新」狀態。問題正在從它回來。 – rex

+0

其實我試圖改變其他狀態的路徑,它沒有任何區別。它總是回到同一點。我遇到的另一個有趣的事情是locations.map的狀態永遠不會被保存(或緩存),所以無論我何時去它,它都會從頭開始排序或加載 – rex