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

时间:2016-05-13 16:58:36

标签: ionic-framework

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

2 个答案:

答案 0 :(得分:33)

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

例如,通过

修改app.html文件中的菜单
<ion-menu [content]="content" (ionOpen)="menuOpened()" (ionClose)="menuClosed()">

我使用&#34;事件&#34;请参阅此处的文档:http://ionicframework.com/docs/v2/api/util/Events/

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

我app.ts中的示例

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

menuOpened() {
    this.events.publish('menu:opened', '');
}

在我的另一页

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

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

我希望这个帮助

答案 1 :(得分:5)

似乎已将新事件添加到菜单组件中以解决此问题。我也在使用谷歌地图插件,它工作正常 http://ionicframework.com/docs/v2/api/components/menu/Menu/

ionDrag

拖动菜单时。

ionOpen

菜单打开后。

ionClose

菜单关闭后。

使用这些输出事件,在处理程序中,如果菜单打开或不打开,您可以保留菜单的标志:)