Angularjs Ionic/Angular ui路由器:返回时将父状态及其子状态计为一个状态

Angularjs Ionic/Angular ui路由器:返回时将父状态及其子状态计为一个状态,angularjs,ionic-framework,angular-ui-router,Angularjs,Ionic Framework,Angular Ui Router,“我的抽象状态”是一个带有选项卡的框架,根据活动选项卡在下部加载模板。布局与此类似: 问题是,当我向后导航时,它也会在选项卡中导航,而不是返回到以前的状态。我如何防止这种行为 这是我的父状态的模板 <ion-tabs> <ion-tab ui-sref="home.user.details"> </ion-tab> <ion-tab ui-sref="home.user.followers"> </ion-tab> &

“我的抽象状态”是一个带有选项卡的框架,根据活动选项卡在下部加载模板。布局与此类似:

问题是,当我向后导航时,它也会在选项卡中导航,而不是返回到以前的状态。我如何防止这种行为

这是我的父状态的模板

<ion-tabs>
  <ion-tab ui-sref="home.user.details">
  </ion-tab>
  <ion-tab ui-sref="home.user.followers">
  </ion-tab>
</ion-tabs>
<ion-nav-view class="inner-view"></ion-nav-view>

如果要在使用硬件backbutton时执行此操作,可以使用Ionic的
onHardwareBackButton
功能手动设置其应导航到的状态,如下所示:

$ionicPlatform.onHardwareBackButton(onBackButton);

function onBackButton(e) {
  $state.go('home.user');
}
$ionicPlatform.offHardwareBackButton(onBackButton);
您可以在选项卡状态上注册上述内容,然后在所需行为发生如下变化时,使用
offHardwareBackButton
将其删除:

$ionicPlatform.onHardwareBackButton(onBackButton);

function onBackButton(e) {
  $state.go('home.user');
}
$ionicPlatform.offHardwareBackButton(onBackButton);
我没有看到后退按钮,但如果您确实有/想要一个后退按钮,请将其替换为自制的on,并使用类似以下内容使其进入父状态:

HTML:


您好,谢谢您的帮助。我已经尝试过这种方法,但我不知道如何获得我想要导航到的状态,因为我的父状态代表一个用户配置文件,我可以有一个像这样的状态链
home>user1>user2
,我的后退按钮应该在其中导航。我尝试使用
$stateParams
将上一个视图传递给我的
用户
,但它总是传递
主页
。您不能只使用
$state.go('home.user',{id:$stateParams.id})?或者,您可以将以前的状态用户id存储在某个位置,如果您想后退一步,可以使用它。如果我理解正确,这是我的假设。作为参数传递的
id
是我要显示的用户的id。无论如何,我已经能够使用
ui sref=“home.user.basics({id:userID,prev:$ionichistore.currentView()})”
$state.go(prev.stateName,prev.stateParams)
。你最后的评论帮助我朝着这个方向前进。谢谢,很酷,你成功了!很高兴我能帮你找到正确的方向:)
$scope.goToHome = function() {
  $state.go('home.user');
};