'When i resize the window using the <ion-split-pane>, the content disapears (menu and router outlet)
I have two ion menus and one main content(router outlet). And when i resize the page or place it on moblie view, i get a blank page, like the content is missing.
code:
<ion-app>
<ion-split-pane>
<ion-menu side="start" menuId="first" contentId="main">
<ion-header>
<ion-toolbar color="primary">
<ion-title>Start Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
</ion-list>
</ion-content>
</ion-menu>
<ion-menu side="end" menuId="first" contentId="main">
<ion-header>
<ion-toolbar color="primary">
<ion-title>Start Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
<ion-item>Menu Item</ion-item>
</ion-list>
</ion-content>
</ion-menu>
<ion-router-outlet></ion-router-outlet>
</ion-split-pane>
</ion-app>
What can i add or do to make the content not disapear?
Solution 1:[1]
First of all, both your menus have the same menuId="first". make one of them menuId="second". I think you missed id="main" for ion-router-outlet too. fix these things and try again.
Solution 2:[2]
Here's what works for me in Angular 13 and Ionic 6
<ion-app>
<ion-split-pane contentId="main-content">
<ion-menu side="start" menuId="start" contentId="main-content" type="overlay">
<ion-content>
<ion-grid class="ion-no-padding">
<ion-row class="ion-no-padding">
<ion-col size="12" class="ion-no-padding">
<ion-item class="transparent header" lines="none">
<ion-label class="ion-text-start">
<h2 class="text-size-lg font-bold text-color-primary ion-text-wrap padding-half-bottom">
Left Menu Title
</h2>
<h3 clas="text-size-xs font-regular text-color-primary ion-text-wrap">
Left Menu Subtitle
</h3>
</ion-label>
</ion-item>
<ion-list class="ion-no-padding">
<ion-menu-toggle translate auto-hide="false" *ngFor="let pageModel of startMenuPageModels">
<ion-item lines="none" class="border-radius box-shadow ion-margin" [routerDirection]="'root'" (click)="openPage(pageModel)">
<i slot="start" class="{{pageModel.icon}} icon-font-md icon-color-primary"></i>
<ion-label class="text-size-xs font-bold text-color-primary">
{{pageModel.title}}
</ion-label>
</ion-item>
</ion-menu-toggle>
</ion-list>
</ion-col>
</ion-row>
</ion-grid>
</ion-content>
</ion-menu>
<ion-menu side="end" menuId="end" contentId="main-content" type="overlay">
<ion-content>
<ion-grid class="ion-no-padding">
<ion-row class="ion-no-padding">
<ion-col size="12" class="ion-no-padding">
<ion-item class="transparent header" lines="none">
<ion-label class="ion-text-start">
<h2 class="text-size-lg font-bold text-color-primary ion-text-wrap padding-half-bottom">
Right Menu Title
</h2>
<h3 clas="text-size-xs font-regular text-color-primary ion-text-wrap">
Right Menu Subtitle
</h3>
</ion-label>
</ion-item>
<ion-list class="ion-no-padding">
<ion-menu-toggle translate auto-hide="false" *ngFor="let pageModel of startMenuPageModels">
<ion-item lines="none" class="border-radius box-shadow ion-margin" [routerDirection]="'root'" (click)="openPage(pageModel)">
<i slot="start" class="{{pageModel.icon}} icon-font-md icon-color-primary"></i>
<ion-label class="text-size-xs font-bold text-color-primary">
{{pageModel.title}}
</ion-label>
</ion-item>
</ion-menu-toggle>
</ion-list>
</ion-col>
</ion-row>
</ion-grid>
</ion-content>
</ion-menu>
<ion-router-outlet id="main-content"></ion-router-outlet>
</ion-split-pane>
</ion-app>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Mahdi Zarei |
| Solution 2 | Chris Sprague |
