场景:
下单支付判断没有绑定手机号之后需要跳转到绑定手机号页面,绑定手机号成功之后再跳转到订单页,但是从订单页返回的时候不要返回到绑定手机页,而是下单的页面,这个时候就需要从绑定手机页跳转到订单页的时 候抹掉绑定手机页的历史纪录,这样返回的时候就回不到这一页了。
实现方式:
1.从下单页跳到手机页的时候,路由带参数(完成后要跳转的页面)
$state.go( 'bind mobile' , {"returnState" : "order" } );
2.跳到手机页后接受路由参数 ($stateParams.returnState)
if($stateParams.returnState){
var backView = $ionicHistory.backView();
$state.go($stateParams.returnState, null, {location: 'replace'}).then(function(){
window.setTimeout(function(){
$ionicHistory.viewHistory().backView = backView;
}, 0);
});
}else{
$ionicHistory.goBack();
}
注释: 1.$state.go 的第三个参数{ location:'replace' }这样可以实现浏览器抹掉该记录;
2.但是ionic 有自己的 history,$ionicHistory.viewHistory().backView 就是它的上一层窗口,首先在手机页保存下它的backView,等跳转到订单页时,将这一页的backView用上一次保存的view代替。