J'utilise la version bêta de ionic 4 pour la première fois. J'essaie de désactiver le menu sur une page de connexion, mais j'ai des problèmes.
J'ai créé l'application avec ionic-cli et le modèle sidemenu, puis j'ai généré une page de connexion.
J'ai supprimé le <ion-split-pane>
depuis app.component.html
J'ai modifié app-routing.module.ts pour rediriger vers mon écran de connexion. Dans mon fichier de connexion, j'ai essayé de mettre un événement ngOnInit pour désactiver le menu sur cette page spécifique
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);
}
}
J'ai essayé alto avec un identifiant défini dans le menu ionique
<ion-menu swipeEnabled="true" #menu>
et changer mon code avec
this.menuCtrl.enable(false, 'menu');
Ça ne marche pas, quelqu'un peut-il m'aider s'il vous plait.
Merci
Ionic 4.0.0 supporte toujours ionViewWillEnter
, utilisez le code ci-dessous:
ionViewWillEnter() {
this.menuCtrl.enable(false);
}
Vous pouvez trouver un exemple complet ici .
Dans mon cas dans l'application ionic 4, j'ai fait ce qui suit dans le fichier welcome.page.ts. Welcome.page.ts est la page dans laquelle je souhaite masquer le volet divisé.
import { MenuController } from '@ionic/angular';
constructor( public menuCtrl: MenuController){}
ionViewWillEnter() {
this.menuCtrl.enable(false);
}
Ionic 4, vous utiliseriez la propriété désactivée sur ion-menu pour vous cacher lors de la connexion.
<ion-menu [disabled]="!isLoggedIn"></ion-menu>
Résolu mon problème en utilisant
<ion-menu [swipeGesture]="false" ...>
Au lieu de le désactiver manuellement, je pense que vous devriez désactiver le balayage dans le menu ionique comme ceci:
<ion-menu [content]="content" [swipeEnabled]="false">
Your code
</ion-menu>
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
et dans la page de connexion
<ion-header>
<ion-navbar>
<ion-title text-center>Login</ion-title>
</ion-navbar>
</ion-header>
Ce menu sera désactivé dans la page de connexion.