Search code examples
ionic-frameworkangular6ionic4

disable menu on login page ionic 4


I use the beta of ionic 4 for the first time. I try to disable the menu on a login page, but i have some trouble.

I've created the app with ionic-cli and the sidemenu template, then I generated a login page.

I removed the <ion-split-pane> from the app.component.html

I modified the app-routing.module.ts to redirect to my login screen. In my login file, I tried to put an ngOnInit event to disable the menu on this specific page

import { Component, OnInit, AfterContentInit, AfterViewInit,OnDestroy } from '@angular/core';
import { MenuController } from '@ionic/angular';
@Component({
  selector: 'app-login',
  templateUrl: './login.page.html',
  styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit, AfterContentInit, AfterViewInit,OnDestroy {
  constructor(public menuCtrl: MenuController) {}
  ngOnInit() {
    this.menuCtrl.enable(false);
    this.menuCtrl.swipeEnable(false);
  }
  ngAfterContentInit()  {
    this.menuCtrl.enable(false);
    this.menuCtrl.swipeEnable(false);
  }
  ngAfterViewInit() {
    this.menuCtrl.enable(false);
    this.menuCtrl.swipeEnable(false);
  }
  ngOnDestroy() {
    this.menuCtrl.enable(true);
    this.menuCtrl.swipeEnable(true);
  }
}

I alto tried with an id set in ion-menu

<ion-menu swipeEnabled="true" #menu>

and change my code with

this.menuCtrl.enable(false, 'menu');

It's not working, can some one help me please.

Thank's


Solution

  • Ionic 6 still supports ionViewWillEnter, use below code:

    ionViewWillEnter() {
      this.menuCtrl.enable(false);
    }
    

    You can find full example here.