當我導航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。瀏覽器
$ionicHistory.nextViewOptions({ disableBack: true });
這時候從須要從viewC返回到viewA就可使用$location.path("viewA"),左上角再也不是左箭頭。而且打印出$ionicHistory.viewHistory()能夠看見,此時viewA和開始的時候viewA的backview同樣都爲nullapp
若是不加上面那段代碼打印結果是這樣的:webapp
ionic官方文檔中有介紹goBack方法,以下:ionic
因此,咱們就能夠在viewC中直接使用這個goBack方法,在瀏覽器的歷史記錄棧中,直接返回到viewA:spa
$ionicHistory.goBack(-2);
打印出viewA的視圖歷史和上面同樣,backView: nullcode
由以上方法總結出:若是viewA的backView有值,那麼ionic就會自動將左上角設置爲返回按鈕。換言之,人爲的控制backView那麼就能夠獲得咱們想要的結果blog
若是解釋有誤的地方請留言文檔