如何在离子4中禁用侧面菜单?

问题描述 投票:4回答:5

我正在使用this.menuCtrl.swipeEnable(false); for ionic 3 app。这适用于禁用侧面菜单。但是,它对离子4不起作用!以下是我的离子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>
angular ionic-framework ionic3 hybrid-mobile-app ionic4
5个回答
4
投票
this.menuCtrl.enable(false);

这也适用于构造函数。我在离子v4 - beta.2项目中使用它,它工作正常。

此外,我看到你正在使用ionicangular所以你也可以OnInit生命周期钩。


2
投票

尝试

this.menuCtrl.enable(false);

这也似乎在这里回答disable menu on login page ionic 4


2
投票

首先,swipeEnable()现在是swipeGesture()。

其次,我遇到了与MenuController类似的问题,并且在我意识到阅读离子核心文档是明智的之前,我的头撞墙比我所揭示的要长。

我有多个侧面菜单,每个都有一个唯一的id,默认情况下设置为false,必须在特定页面上启用。但是MenuController没有识别我传入的id。

对于无意识的问题,我在github上打开了离子核心文档并了解到MenuController现在查找menu-id,而不是id。所以:

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

被抓住,例如:

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

作品。

回想起来,新方法和找到它的解决方案似乎都很明显。


1
投票

对我来说,它在ngOnInit方法中的工作

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

1
投票

在login.page.ts中尝试这个

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

© www.soinside.com 2019 - 2024. All rights reserved.