【问题标题】:ionic 4 adding side menuionic 4 添加侧边菜单
【发布时间】:2023-11-30 17:14:01
【问题描述】:

我用标签模板开始了一个项目,后来我决定添加一个侧面菜单。问题是侧边菜单根本不出现。这是我的 app.components.html 的样子

<ion-app>
    <ion-split-pane>
        <ion-menu side="start">
            <ion-header translucent>
              <ion-toolbar color="secondary">
                <ion-title>Menu</ion-title>
              </ion-toolbar>
            </ion-header>
            <ion-content><ion-list><ion-item>he vik</ion-item></ion-list></ion-content>
          </ion-menu>
          <ion-router-outlet></ion-router-outlet>

        </ion-split-pane>
</ion-app>

实际上,在完成上述操作之后,我的实际页面会出现一秒钟,因此会显示一个白页。

在控制台中我看到一个错误

sz7tok82.entry.js:5 Menu: must have a "content" element to listen for drag events on.

但我已经有了内容元素。

【问题讨论】:

    标签: ionic-framework ionic4 ion-menu


    【解决方案1】:

    Sirius2013 是正确的,您需要使用 contentId 属性。 请参阅下面的工作示例:

    App.component.html

    <ion-app>
      <ion-menu contentId="content1" side="start">
        <ion-header>
          <ion-toolbar>
            <ion-title>Menu</ion-title>
          </ion-toolbar>
        </ion-header>
        <ion-content>
          menu stuff
        </ion-content>
      </ion-menu>
      <ion-router-outlet id="content1" main></ion-router-outlet>
    </ion-app>
    


    AnyPage.html

    在要显示侧边菜单的页面中,可以使用 ion-menu-button 标签。
    看这个例子:

    <ion-header>
      <ion-toolbar>
        <ion-title>Page Title</ion-title>
        <ion-buttons slot="start">
          <ion-menu-button autoHide="false"></ion-menu-button>
        </ion-buttons>
      </ion-toolbar>
    </ion-header>
    

    autoHide 标签设置为 false,这样您将始终看到菜单按钮。

    文档: https://beta.ionicframework.com/docs/api/menu-button

    【讨论】:

    • @Tomas Vancoillie 如何在现有菜单之外添加新菜单?
    • 什么 "id="content1" main " 这在路由器出口上意味着什么?
    • 好的,但是contentId 是什么意思?为什么我需要它? Ionic 文档只是说“contentId:描述:菜单应该使用的内容 id”。我只是比以前更困惑
    • @CristianTraìna 菜单必须有一个“内容”元素来监听拖动事件。 &lt;ion-menu contentId="main-content"&gt;&lt;/ion-menu&gt; &lt;div id="main-content"&gt;...&lt;/div&gt;
    • @TomasVancoillie 你能回答my question吗?有空我会设置赏金
    【解决方案2】:
    <ion-menu>
      <ion-header>
        <ion-toolbar>
          <ion-title>Menu</ion-title>
        </ion-toolbar>
      </ion-header>
    </ion-menu>
    <ion-router-outlet main></ion-router-outlet>
    

    https://beta.ionicframework.com/docs/api/menu

    尝试使用 contentId 属性。

    【讨论】: