【问题标题】:Ionic: Modify ion nav bar buttons from inside a ui-view离子:从 ui 视图中修改离子导航栏按钮
【发布时间】:2016-09-06 16:35:19
【问题描述】:

在我们的应用程序中,我们使用ui-view 实现了自己的拆分视图来加载右侧窗格。我们实现了我们自己的,因为 Ionic 显示侧边菜单的方式对我们来说还不够。看起来是这样的:

Screenshot

问题在于右窗格视图中指定的按钮未添加到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 而不是父指令。

这也有一些问题,因为这依赖于beforeEnterafterEvent 事件,并且当我的右侧视图加载时,外部视图的事件已经被触发。所以我决定自己触发:

parentViewCtrl.beforeEnter(undefined, {transitionId: transitionId});

有了这个,我设法使它在第一次打开视图时工作。但是,如果我转到子视图(我们称之为视图 B)然后返回,则显示的标题栏是子视图(视图 B)中的标题栏,而不是我想要的标题栏(视图 A)。如果我使用侧边菜单转到另一个视图(视图 C)然后返回视图 A,也会发生同样的情况,看到的标题是视图 C 中的标题。

有谁知道在返回视图时如何更新header 栏?

我知道我的解决方案很老套,我想没有人会知道如何帮助我,但我会很感激任何关于如何使这样的事情起作用的建议。

一些有用的链接:

Directive I created based on ionNavButtons.

谢谢!

【问题讨论】:

    标签: javascript angularjs angularjs-directive ionic-framework


    【解决方案1】:

    我发现了问题,因为我使用了错误的transitionId。返回视图时,会生成一个新的transitionId,我需要使用那个。我使用beforeEnter 事件来获取新的transitionId

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多