4

サイドメニュー プロジェクトを ionic v4-beta3 で使用しています

たとえば、一部のページでサイドメニューを無効にしたい/login

/home最初にページをロードしてからページに移動すると、正しく機能してい/loginます。サイドメニューは予想通り消える。

ページでアプリケーションをリロードすると/login、メニューが無効になりません。

import { Component, OnInit } 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 {

  constructor(
    private menuController: MenuController
  ) {}

  ngOnInit() {}

  ionViewWillEnter() {
    console.log('ionViewWillEnter');
    this.menuController.enable(false);
  }

  ionViewDidLeave() {
    console.log('ionViewDidLeave');
    this.menuController.enable(true);
  }

}

100 ミリ秒または 200 ミリ秒の setTimeout を使用してメソッドを呼び出すとenable、サイド メニューが非表示になりますが、あまりきれいではありません...

ionViewWillEnter() {
    console.log('ionViewWillEnter');
    const timer = setTimeout(() => {
        clearTimeout(timer);
        this.menuController.enable(false);
    }, 100);
}

別の回避策は、ディレクティブと等しくない場合ion-menuを示すことです。それは機能していますが、これもあまりきれいではありません...window.location.pathName/login*ngIf


イオン情報

Ionic:

   ionic (Ionic CLI)          : 4.1.1 
   Ionic Framework            : @ionic/angular 4.0.0-beta.3
   @angular-devkit/core       : 0.7.4
   @angular-devkit/schematics : 0.7.4
   @angular/cli               : 6.1.4
   @ionic/ng-toolkit          : 1.0.6
   @ionic/schematics-angular  : 1.0.5
4

2 に答える 2