disable menu on login page ionic 4

百般思念 提交于 2019-12-14 00:15:40

问题


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


回答1:


Ionic 4.0.0 still supports ionViewWillEnter, use below code:

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

You can find full example here.




回答2:


In my case in ionic 4 app, I did the following in welcome.page.ts file. welcome.page.ts is the page in which I want to hide split pane.

import {  MenuController } from '@ionic/angular';

constructor( public menuCtrl: MenuController){}

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



回答3:


Ionic 4 you would use the disabled property on ion-menu to hide on login.

<ion-menu [disabled]="!isLoggedIn"></ion-menu>



回答4:


Solved my issue using

<ion-menu [swipeGesture]="false" ...>



回答5:


Instead of manually disabling it i think you should disable the swipe in ion-menu like this:

<ion-menu [content]="content" [swipeEnabled]="false">
   Your code
</ion-menu>
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>

and in the login page

<ion-header>

 <ion-navbar>
   <ion-title text-center>Login</ion-title>
 </ion-navbar>

</ion-header>

This way menu will be disabled in the Login Page.



来源:https://stackoverflow.com/questions/51610075/disable-menu-on-login-page-ionic-4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!