ionic導航之后返回功能的說明


  當我導航view之后,再使用$location.path("/path/origin")方法重新定位到初始頁面,在深入進入其他的view之后使用這個方法就遇到了問題。

  假設這個設置頁面為viewA,如果只從viewA-》viewB,那么使用$location.path(’viewA‘)方法重新定位回viewA就沒問什么問題。但是如果從viewA-》viewB-》viewC,在viewC重新返回到viewA $location.path(‘viewA‘),viewA左上角的圖標就不在是其本來的功能按鈕,變成了如下第二圖的左箭頭。

技術分享技術分享

 

  造成這問題是因為web瀏覽器只跟蹤一個歷史瀏覽記錄,而app和webapp需要並行獨立的歷史記錄,例如上面說的viewB和viewC,我們需要這兩個視圖前一個視圖記錄都是viewA。

第一種方法:讓viewC忘記它自己的蹤跡,在viewC的controller中加入下面代碼

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

  這時候從需要從viewC返回到viewA就可以使用$location.path("viewA"),左上角不再是左箭頭。並且打印出$ionicHistory.viewHistory()可以看見,此時viewA和開始的時候viewA的backview一樣都為null

技術分享

 

如果不加上面那段代碼打印結果是這樣的:

技術分享

  

方法二:從viewC直接返回到viewA

  ionic官方文檔中有介紹goBack方法,如下:

技術分享

  所以,我們就可以在viewC中直接使用這個goBack方法,在瀏覽器的歷史記錄棧中,直接返回到viewA:

$ionicHistory.goBack(-2);

打印出viewA的視圖歷史和上面一樣,backView: null

 

  由以上方法總結出:如果viewA的backView有值,那么ionic就會自動將左上角設置為返回按鈕。換言之,人為的控制backView那么就可以得到我們想要的結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM