ionic5 menu submenu functionality
<ion-app>
<ion-split-pane contentId="main-content">
<ion-menu contentId="main-content" type="overlay">
<ion-header>
<ion-toolbar>
<ion-grid style="background-image: linear-gradient(45deg, #165997, #144e8d);
color: #fff;">
<ion-row>
<ion-col size="3">
<ion-avatar>
<img src="http://207.38.84.105/Nakhas/public/images/fromserver/sidelogo.png" alt="" class="imagehead" style="width:100%;">
</ion-avatar>
</ion-col>
<ion-col>
<p style="font-size:18px;font-weight:bold;margin-top: 27px;" class="imagetext">NAKHAS</p>
</ion-col>
</ion-row>
</ion-grid>
</ion-toolbar>
</ion-header>
<ion-content>
<div *ngFor = "let p of appPages">
<ion-menu-toggle auto-hide="false" *ngIf="p.url">
<ion-item style="border: none;" routerDirection="root" [routerLink]="[p.url]" routerLinkActive="active">
<ion-icon slot="start" [name]="p.icon" color="secondary"></ion-icon>
<ion-label color="secondary">
{{p.title}}
</ion-label>
</ion-item>
</ion-menu-toggle>
<ion-item button *ngIf="p.children?.length > 0" (click)="p.open = !p.open" [class.active-parent]="p.open" detail="false">
<ion-icon slot="start" name="caret-forward-outline" color="secondary" *ngIf ="!p.open"></ion-icon>
<ion-icon slot="start" name="caret-down-outline" color="secondary" *ngIf ="p.open"></ion-icon>
<ion-label color="secondary">
{{p.title}}
</ion-label>
</ion-item>
<ion-list *ngIf="p.open">
<ion-menu-toggle auto-hide="false" >
<ion-item style="margin-left: 50px;" *ngFor="let sub of p.children" routerDirection="root" [routerLink]="sub.url" routerLinkActive="active">
<ion-icon slot="start" [name]="sub.icon" color="secondary"></ion-icon>
<ion-label color="secondary">
{{sub.title}}
</ion-label>
</ion-item>
</ion-menu-toggle>
</ion-list>
</div>
</ion-content>
</ion-menu>
<ion-router-outlet id="main-content"></ion-router-outlet>
</ion-split-pane>
</ion-app>
public appPages = [
{
title: 'Home',
url: '/',
icon: 'home'
},
// {
// title: 'About',
// url: '/aboutus',
// icon: 'home'
// },
{
title: "About Us",
icon: 'home',
children: [
{
title: "Over View",
url: '/over-view',
image:'/assets/images/about/view.png',
// icon: 'home'
},
{
title: "Mission",
url: '/mission',
image:'/assets/images/about/mission.png',
// icon: 'add-circle'
},
{
title: "Vision",
url: '/vision',
image:'/assets/images/about/vission.png',
// icon: 'logo-vimeo'
},
{
title: "Approach",
url: '/approach',
image:'/assets/images/about/apporach.png',
// icon: 'home'
}
]
},
{
title: 'Our Work',
url: '/ourwork',
icon: 'briefcase'
},
{
title: 'Campaigns',
url: '/services',
icon: 'microphone'
},
{
title:'Get Involved',
url: '/services',
icon: 'information-circle-outline'
},
{
title:'Media Centre',
url: '/gallery',
icon: 'film'
},
{
title: 'Events',
url: '/events',
icon: 'trophy'
},
{
title: 'Gallery',
url: '/gallery',
icon: 'images'
},
{
title: 'Contact Us',
url: '/contactus',
icon: 'contact'
},
];
Comments
Post a Comment