Professional Documents
Culture Documents
Source:: #Menu Template #Single Page #Child Page #Child Page
Source:: #Menu Template #Single Page #Child Page #Child Page
v=_yFoStldYLI
SIDEMENU
4. Update app-routing.module.ts
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
We will use later the children path that have been commented (see green color with comments //)
(main,ionic and flutter) later.
5. Create a button at home page
6. Update home.page.html
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Home
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content [fullscreen]="true">
<div id="container">
<ion-button color="warning" (click)="menupage()">Go to Menu Page</ion-
button> </div>
</ion-content>
7. Update home.page.ts
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private route: Router) {}
menupage() {
this.route.navigate(['/menu']);
}
}
We will create a menu like this
8. Update menu-routing.module.ts
},
{
path: '',
component: MenuPage,
children: [
{
path: 'main',
loadChildren: () => import('../main/main.module').then( m =>
m.MainPageModule)
},
{
path: 'ionic',
loadChildren: () => import('../ionic/ionic.module').then( m =>
m.IonicPageModule)
},
{
path: 'flutter',
loadChildren: () => import('../flutter/flutter.module').then( m =>
m.FlutterPageModule)
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class MenuPageRoutingModule {}
@Component({
selector: 'app-menu',
templateUrl: './menu.page.html',
styleUrls: ['./menu.page.scss'],
})
export class MenuPage implements OnInit {
pages = [
{
title: 'Main',
url: '/menu/main',
icon: 'home'
},
{
title: 'Tambahan Menu',
url: 'abc',
icon: 'pencil'
},
{
title: 'Cool Frameworks',
children : [
{
title: 'Ionic',
url: '/menu/ionic',
icon: 'logo-ionic'
},
{
title: 'Flutter',
url: '/menu/flutter',
icon: 'logo-google'
}
]
}
];
constructor() { }
ngOnInit() {
}
}
10. Update menu.page.html
<ion-menu contentId="content">
<ion-header>
<ion-toolbar color="primary">
<ion-title>menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div *ngFor="let p of pages">
<ion-menu-toggle *ngIf="p.url">
<ion-item [routerLink] = "p.url" routerDirection="root"
routerLinkActive="active">
<ion-icon [name]= "p.icon" slot="start"> </ion-icon>
<ion-label>
{{ 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="arrow-forward" *ngIf="!p.open"></ion-
icon>
<ion-icon slot = "start" name="arrow-down" *ngIf="p.open"></ion-icon>
<ion-label>{{p.title}}</ion-label>
</ion-item>
<ion-list *ngIf="p.open">
<ion-menu-toggle>
<ion-item *ngFor="let sub of p.children" [routerLink] = "sub.url"
routerDirection="root" routerLinkActive="active">
<ion-icon [name]= "sub.icon" slot="start"> </ion-icon>
<ion-label>
{{sub.title}}
</ion-label>
</ion-item>
</ion-menu-toggle>
</ion-list>
</div>
</ion-content>
</ion-menu>
<ion-router-outlet id="content"></ion-router-outlet>
11. Update main.page.html, ionic.page.html and flutter.page.html by adding the ion-menu-button
main.page.html
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title>main</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
flutter.page.html
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title>flutter</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
ionic.page.html
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title>ionic</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>