ionic:怎樣屢次導航以後返回以前的view

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

  假設這個設置頁面爲viewA,若是隻從viewA-》viewB,那麼使用$location.path(’viewA‘)方法從新定位回viewA就沒問什麼問題。可是若是從viewA-》viewB-》viewC,在viewC從新返回到viewA $location.path('viewA'),viewA左上角的圖標就不在是其原本的功能按鈕,變成了以下第二圖的左箭頭。api

 

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

第一種方法:讓viewC忘記它本身的蹤影,在viewC的controller中加入下面代碼

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

  這時候從須要從viewC返回到viewA就可使用$location.path("viewA"),左上角再也不是左箭頭。而且打印出$ionicHistory.viewHistory()能夠看見,此時viewA和開始的時候viewA的backview同樣都爲nullapp

 

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

  

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

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

  因此,咱們就能夠在viewC中直接使用這個goBack方法,在瀏覽器的歷史記錄棧中,直接返回到viewA:spa

$ionicHistory.goBack(-2);

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

 

  由以上方法總結出:若是viewA的backView有值,那麼ionic就會自動將左上角設置爲返回按鈕。換言之,人爲的控制backView那麼就能夠獲得咱們想要的結果blog

 

若是解釋有誤的地方請留言文檔

相關文章
相關標籤/搜索