Menu: must have a "content" element to listen for drag events on

Viewed 1188

I created a menu component which has the menu-button and the ion-menu inside because i want to use this component on multiple pages. To use this component on different pages, i created a module with the menu component inside which than gets imported on every page that should have the menu. When accessing the page i get the error

Menu: must have a "content" element to listen for drag events on

app.component.html

<ion-app>
    <ion-router-outlet id="main-menu"></ion-router-outlet>
</ion-app>

menu.component.html

<div id="menu-button" (click)="this.toggleMenu()">
    <span></span>
    <span></span>
    <span></span>
</div>
<ion-menu side="start" contentId="main-menu" menuId="main-menu">
    <ion-content>
        <ion-menu-toggle auto-hide="false">
            <ion-list lines="none">
                <ion-item [routerLink]="'/list-view'">
                    <ion-icon name="list-outline" slot="start"></ion-icon>
                    {{ 'PAGES.LISTVIEW.LISTVIEW' | translate }}
                </ion-item>
                <ion-item [routerLink]="'/settings'">
                    <ion-icon name="list-outline" slot="start"></ion-icon>
                    {{ 'PAGES.SETTINGS.PKEY' | translate }}
                </ion-item>
                <ion-item (click)="logout()">
                    <ion-icon name="log-out-outline" slot="start"></ion-icon>
                    {{ 'PAGES.LOGIN.LOGOUT' | translate }}
                </ion-item>
            </ion-list>
        </ion-menu-toggle>
    </ion-content>
</ion-menu>
1 Answers

I use ion-split-pane directly inside this code works:

app.component.html

<ion-app>
  <ion-split-pane contentId="menu-content">
    <ion-menu contentId="menu-content" menu="menu-content-dx" side="end" type="overlay">
      <ion-header>
        <ion-menu-toggle>
          <ion-toolbar>
            <ion-title>menu (under construction) </ion-title>
          </ion-toolbar>
        </ion-menu-toggle>
      </ion-header>
      <ion-content>
        <ion-list>
          <ion-menu-toggle>
            <ion-item [routerLink]="['/auth/logout']">
              <ion-icon name="information-outline" slot="start"></ion-icon>
              <ion-label>Logout</ion-label>
            </ion-item>
          </ion-menu-toggle>
        </ion-list>
      </ion-content>
    </ion-menu>
    <!-- router outlet here -->
    <ion-router-outlet id="menu-content" main></ion-router-outlet>
  </ion-split-pane>
</ion-app>

home.page.html in toolbar reference to menu id : menu="menu-content-dx"

<ion-header [translucent]="true">
<ion-toolbar>
<ion-buttons slot="end">
  <ion-menu-button menu="menu-content-dx"></ion-menu-button>
</ion-buttons>
<ion-title>
  home menu
</ion-title>
</ion-toolbar>
</ion-header>
Related