web-dev-qa-db-fra.com

Comment désactiver le menu latéral dans ionic 4?

J'utilise this.menuCtrl.swipeEnable(false); pour l'application ionic 3. Cela fonctionne bien pour désactiver le menu latéral. Mais cela ne fonctionne pas pour ionic 4! Voici mon exemple de code ionic 4:

login.page.ts

constructor(public loginService: LoginService, private router: Router, public menuCtrl: MenuController) {
    this.menuCtrl.swipeEnable(false);
   }

app.component.html

<ion-app>
  <ion-split-pane>
    <ion-menu type="Push">
      <ion-header>
        <ion-toolbar color="success">
          <ion-title>Menu</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content>
        <ion-list>
          <ion-menu-toggle auto-hide="false" *ngFor="let p of appPages">
            <ion-item [routerDirection]="'root'" [routerLink]="[p.url]">
              <ion-icon slot="start" [name]="p.icon"></ion-icon>
              <ion-label>
                {{p.title}}
              </ion-label>
            </ion-item>
          </ion-menu-toggle>
        </ion-list>
      </ion-content>
    </ion-menu>
    <ion-router-outlet main></ion-router-outlet>
  </ion-split-pane>
</ion-app>
6
Abhijit M. Abhi
this.menuCtrl.enable(false);

Cela fonctionnera également dans le constructeur. J'utilise ceci dans un projet ionic v4 - beta.2 et cela fonctionne très bien.

De plus, je constate que vous utilisez ionic avec angular afin que vous puissiez également utiliser le hook de cycle de vie OnInit.

4
ashfaq.p

Tout d'abord, swipeEnable () est maintenant swipeGesture ().

Deuxièmement, j'ai eu un problème similaire avec le MenuController et je me suis cogné la tête contre un mur plus longtemps que je ne le dévoilerai avant de réaliser qu'il serait sage de lire le ionic = documents principaux.

J'avais plusieurs menus latéraux chacun avec un identifiant unique, défini sur false par défaut, qui devait être activé sur des pages particulières. Mais MenuController ne reconnaissait pas le id's je passais.

Concordé au point d'inconscience, j'ai ouvert les ionic core docs sur github et j'ai appris que MenuController cherche maintenant le menu-id, pas id. Donc:

<ion-menu menu-id="myMenu">...

saisi par, par exemple:

this.menuCtrl.enable(true, 'myMenu')

travaux.

Comme toujours rétrospectivement, la nouvelle méthode et la solution pour la trouver semblent si évidentes.

3
Jai Preston

Essayer

this.menuCtrl.enable(false);

Cela semble également être répondu ici désactiver le menu sur la page de connexion ionic 4

2
Troy DC Thompson

Essayez ceci dans votre login.page.ts

constructor(private navCrtl: NavController, private menu: MenuController) { this.menu.enable(false); }

1
abhay

Pour moi, son travail à l'intérieur de la méthode ngOnInit

ngOnInit() { 
 this.menuCtrl.enable(false); // or true 
}
1
Rafael Moura