如何检测侧面菜单是否在离子2中打开/关闭?

btD*_*Dev 13 ionic-framework

我正在使用cordova-google-maps我的离子2应用程序的插件,我想在该页面上显示菜单(sidenav).问题是sidenav正确接收事件我需要map.setClickable( false )在打开sidenav时调用并true在用户关闭sidenav时将其设置回.在打开菜单时似乎有一个事件要检查opening,但我不知道如何在用户关闭菜单时进行跟踪.

小智 34

要在Ionic2中使用ionDrag,ionOpen,ionClose,您必须将其添加到菜单本身

例如,修改app.html文件中的菜单

<ion-menu [content]="content" (ionOpen)="menuOpened()" (ionClose)="menuClosed()">
Run Code Online (Sandbox Code Playgroud)

在我使用"事件"后,请参阅此处的文档:http://ionicframework.com/docs/v2/api/util/Events/

如果菜单关闭或打开,请在我的页面中进行检测.

我app.ts中的示例

menuClosed() {
    this.events.publish('menu:closed', '');
}

menuOpened() {
    this.events.publish('menu:opened', '');
}
Run Code Online (Sandbox Code Playgroud)

在我的另一页

events.subscribe('menu:opened', () => {
    // your action here
});

events.subscribe('menu:closed', () => {
    // your action here
});
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助


Den*_*ski 5

似乎新事件已添加到解决此问题的菜单组件中。我也在使用Google Maps插件,它的工作原理很好 http://ionicframework.com/docs/v2/api/components/menu/Menu/

ionDrag

菜单被拖动打开时。

ionOpen

打开菜单后。

离子关闭

菜单关闭时。

使用这些输出事件,在您的处理程序中,可以为菜单保留一个标志,无论菜单是否打开:)