【发布时间】:2016-09-06 16:35:19
【问题描述】:
在我们的应用程序中,我们使用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.
谢谢!
【问题讨论】:
标签: javascript angularjs angularjs-directive ionic-framework