在我们的应用中,我们使用ui-view
实现了我们自己的拆分视图,以加载右侧窗格。我们实现了自己的,因为显示侧边菜单的Ionic
方式对我们来说还不够。这就是它的样子:
问题是右窗格视图中指定的按钮未添加到header
栏,因为该视图不是根ion-view
,而是在ui-view
内。
这就是我们的拆分视图中DOM的样子:
<ion-nav-view>
<ion-view> <!-- Left pane ion-view -->
<mm-split-view> <!-- Our directive -->
<div class="mm-split-pane-menu"> <!-- Left pane items -->
<div ui-view="mmaMessagesIndex"> <!-- Right pane container, ui-view -->
<ion-view> <!-- Right pane ion-view -->
<ion-nav-buttons> <!-- These buttons aren't shown -->`
我查看了ionNavButtons
指令,看到它查找了父ionView
,在这种情况下,它不是根ionView
。所以我决定创建类似于ionNavButtons
的自己的指令,但是使用外部ion-view
而不是父指令。
这也有一些问题,因为这依赖于beforeEnter
和afterEvent
事件,当我的右侧视图被加载时,外部视图的事件已经被触发。所以我决定自己触发它:
parentViewCtrl.beforeEnter(undefined, {transitionId: transitionId});
有了这个,我设法让它在我第一次打开视图时工作。但是如果我转到子视图(让我们称之为视图B)然后回来,显示的标题栏是子视图(视图B)中的标题栏,而不是我想要的标题栏(视图A)。如果我使用侧面菜单转到另一个视图(视图C)然后返回到视图A,则会出现相同的情况,看到的标题是来自视图C的标题。
有人知道如何在返回视图时更新header
栏吗?
我知道我的解决方案很糟糕,我想没有人会知道如何帮助我,但我很感激有关如何制作这样的工作的任何建议。
一些有用的链接:
Directive I created based on ionNavButtons.
谢谢!
答案 0 :(得分:0)
我发现了问题,原因是我使用了错误的transitionId
。返回视图时会生成一个新的transitionId
,我需要使用该beforeEnter
。我使用transitionId
事件来获取新的Failed to build gem native extension
。