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

 

若是解释有误的地方请留言文档

相关文章
相关标签/搜索