我有一个主标签,只显示项目列表。和设置选项卡,其中包含用于设置不同配置的嵌套视图。
如果我按此特定顺序导航,后退按钮显示不正确,或者如果要显示,则标题不会离开:37px
这就是我创建导航栏的方式。
<ion-nav-bar class="bar-stable no-animation" align-title="left">
<ion-nav-back-button class="button-icon icon ion-ios7-arrow-back"></ion-nav-back-button>
</ion-nav-bar>
是否有解决方案,要么清除该选项卡的历史记录,那么点击它时会打开主设置选项卡而不是之前打开的嵌套视图?或者如果需要显示,则应正确计算标题的左侧。
这是一个codepen演示。按此顺序单击选项卡。
1. On main page, click on Scientific Facts
2. After view changes, click on Contacts tab
3. Then click on Home tab again. It reproduces the behavior.
更新
到目前为止,我发现有$scope.$watch
决定是否显示或隐藏后退按钮。这会被触发很晚(在计算和标题对齐之后)。因此,在计算时,leftWidth
不会返回按钮的宽度。
答案 0 :(得分:4)
当像这样使用标签时,每个标签都包含自己的历史记录。它实际上正确显示了后退按钮,因为主页面选项卡状态已更改为子页面。然后,后退按钮将带您返回此选项卡的主页(后退按钮特定于每个选项卡!)。第一次单击/点击选项卡按钮可以完成切换选项卡的工作,第二次单击/点击将实际将用户带到该选项卡的默认页面。该错误有时候仍然会应用后退按钮宽度。
我相信Ionic团队正在为此进行一些改进和修复。
您可以在主页的控制器中使用$ionicNavBarDelegate.showBackButton(false);
来禁用该视图中的后退按钮。您还可以将nav-clear
指令置于锚标记上,以明确隐藏链接视图中的后退按钮。
控制器示例
angular.module('App').controller('HomeCtrl', function ($scope, $ionicNavBarDelegate) {
// Disable back button on this controller
$ionicNavBarDelegate.showBackButton(false);
});
答案 1 :(得分:0)
如果您只使用Angular Routes,请使用以下
的 $ route.reload()强>
如果您在离子上使用UI-Router,也可以使用以下
$ state.go($ state.current,{},{reload:true});