2016-02-25 48 views
0

我不明白爲什麼menu-close清除了緩存,因此我無法回到上一頁。爲什麼菜單關閉屬性清除歷史頁面?

<ion-list> 
    <ion-item class="item-icon-left" menu-close ui-sref="app.home"> 
     <h2 class="menu-text">home</h2> 
    </ion-item> 
    <ion-item class="item-icon-left" menu-close ui-sref="app.org"> 
     <h2 class="menu-text">org</h2> 
    </ion-item> 
    <ion-item class="item-icon-left" menu-close ui-sref="app.groups"> 
     <h2 class="menu-text">group</h2> 
    </ion-item> 
</ion-list> 
+0

實際上你的問題是什麼?正如你在相關的'menu-close'代碼中看到的,'nextViewOptions'設置爲'historyRoot = true' [見Github](https://github.com/driftyco/ionic/blob/master/js/angular/指令/ menuClose.js#L46)。這將清除您的歷史緩存... – Beat

+0

當我在下一頁使用'menu-close'BackButton時不會出現,以及何時編寫函數關閉菜單並使用'$ ionicSideMenuDelegate.toggleRight();'它的工作a BackButton它出現了! – nuruddin

回答

-1

這篇文章從離子團隊可以包含您的解決方案:

https://forum.ionicframework.com/t/any-way-to-not-reset-history-stack-on-menu-close/16340

正如你所說,使用菜單關閉標籤,清除歷史記錄。出於這個原因,如果你想保留歷史記錄,你應該避免使用菜單關閉,並嘗試建立自己的行動,而不是關閉菜單。

喜歡的東西加入了NG-點擊你的菜單中的每一項:

<ion-item ng-click="closeMenu()" ui-sref="page2">Page 2</ion-item> 

,然後建立自己的動作鍵(在這個例子中closeMenu())。這種方法只是包含一段代碼來告訴你的應用程序做什麼/如何關閉菜單(因爲代碼片段中沒有關於歷史記錄,歷史記錄將被保存)。

$scope.closeMenu = function() { 
    $ionicSideMenuDelegate.toggleLeft(); 
} 

$ionicHistory.nextViewOptions({ 
    disableAnimate: true 
}); 

當然不要忘記從你的HTML刪除的菜單關閉屬性,;)

嘗試這種解決方案今天,以提高我的應用程序,它的工作就像一個魅力。 Thx來自Ionic團隊的brandyshea,以獲得鏈接文章中記錄的完美解決方案。

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/12911585) – daspilker

+0

done,thx for the remark –