我正在为ionic 3应用程序使用,this.menuCtrl.swipeEnable(false);
。这可以很好地禁用侧边菜单。但是,它不适用于ionic 4!以下是我的ionic 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>
发布于 2018-08-12 18:29:48
this.menuCtrl.enable(false);
这在构造函数中也是有效的。我在一个ionic v4 - beta.2项目中使用了它,它工作得很好。
另外,我看到你正在使用ionic
和angular
,所以你也可以使用OnInit生命周期钩子。
发布于 2018-08-12 03:15:37
发布于 2018-10-15 22:17:16
首先,swipeEnable()现在是swipeGesture()。
其次,我在MenuController上遇到了类似的问题,在意识到阅读ionic core文档之前,我的头撞在墙上的时间比我要透露的时间还要长。
我有多个侧边菜单,每个菜单都有一个唯一的id,默认情况下设置为false,必须在特定页面上启用。但是MenuController没有认出我输入的id。
脑震荡到了无意识的地步,我打开github上的ionic core文档,了解到MenuController现在查找的是menu- id,而不是id。所以:
<ion-menu menu-id="myMenu">...
被抓取,例如:
this.menuCtrl.enable(true, 'myMenu')
很管用。
回想起来,新的方法和找到它的解决方案似乎都是如此显而易见。
https://stackoverflow.com/questions/51802594
复制相似问题