サイドメニュー プロジェクトを 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