7

我正在使用this.menuCtrl.swipeEnable(false);ionic 3 应用程序。这适用于禁用侧面菜单。但是,它不适用于离子 4!下面是我的 ionic 4 代码示例:

登录页面.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>
4

5 回答 5

8
this.menuCtrl.enable(false);

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

另外,我看到您正在使用ionicwith,angular因此您也可以使用 OnInit 生命周期挂钩。

于 2018-08-12T10:29:47.893 回答
4

尝试

this.menuCtrl.enable(false);

这似乎也在这里得到了回答,禁用登录页面 ionic 4 上的菜单

于 2018-08-11T19:15:36.807 回答
4

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

其次,我在MenuController上遇到了类似的问题,并且在意识到阅读 ionic 核心文档是明智的之前,我将头撞到墙上的时间超过了我将要披露的时间。

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

脑震荡到无意识的地步,我在 github 上打开了 ionic core docs,得知 MenuController 现在寻找的是 menu-id,而不是 id。所以:

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

例如:

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

作品。

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

于 2018-10-15T14:17:16.190 回答
2

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

ngOnInit() { 
 this.menuCtrl.enable(false); // or true 
}
于 2019-03-25T19:43:57.973 回答
2

在你的 login.page.ts 中试试这个

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

于 2019-04-30T14:10:30.003 回答