2014-09-02 50 views
5

我有一个主选项卡,它只显示项目列表。和具有嵌套视图以设置不同配置的设置选项卡。离子后退按钮切换选项卡时显示不正确

如果我在这个特殊的顺序浏览,返回按钮被错误地显示,或者如果它是要显示的标题没有得到左: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> 

enter image description here

是否有解决方案,既可以清除标签的历史,所以当再次单击它打开主设置选项卡,而不是先前打开嵌套的看法?或者如果需要显示,它应该正确计算标题的左侧。

这是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不会返回按钮的宽度。

+1

我曾经有过这个问题。我通过保存home标签的“historyID”并直接转到该标签来解决此问题。我不认为这是一个很好的解决方案,所以我很好奇别人想出了什么。同时,你可以看到我在这里做了什么...... http://codepen.io/MrOnosa/pen/ILCed – Onosa 2014-09-02 12:39:03

+0

嗯..这是相当不错的解决方法。让我们看看是否有人有任何解决方案。我试图在ionic.bundle.js中进行调试。标签切换后,似乎后退按钮的状态发生了变化。因此,如果我们从嵌套视图转到新选项卡,标题会缩进。这也是一个相关的错误。 – 2014-09-02 12:44:28

回答

4

当使用这样的标签时,每个标签都包含自己的历史记录。它实际上正确显示后退按钮,因为主标签状态已更改为子页面。后退按钮然后会将您带回此选项卡的主页(后退按钮针对每个选项卡!)。第一次点击/点击选项卡按钮可以完成切换选项卡的工作,第二次点击/点击会实际将用户带到该选项卡的默认页面。该错误有时候后退按钮的宽度仍然被应用。

我相信Ionic团队正在为此进行一些改进和修复。

您可以在主页的控制器中使用$ionicNavBarDelegate.showBackButton(false);以在该视图期间禁用后退按钮。还有一个nav-clear指令,您可以将它放在锚标签上以明确隐藏链接视图中的后退按钮。

控制器示例

​​
+0

将'showBackButton'设置为false会在所有情况下停止显示返回按钮吗?我希望它被显示。只要禁用历史记录(并在第一次点击时打开主标签视图)或显示正确放置的按钮。见[这里](https://github.com/driftyco/ionic/issues/2129),它已被接受为一个错误和待决的决议。我会尽可能地努力。 – 2014-10-05 12:54:43

0

如果你只使用角行程路线,使用follwoing

$ route.reload()

你也可以使用,如果你正在使用的用户界面如下-Router on Ionic

$ state.go($ state.current,{},{reload:true});