我使用带有 ionic v4-beta3 的 sidemenu 项目
例如,我想在某些页面上禁用侧边菜单/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