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

Popular posts from this blog

how to split array as per fixed length, and ionic two dates differences in min,seconds,hours

How to Add Firebase Analytics to Your NativeScript Mobile App