我在我的离子2应用程序中使用cordova-google-maps
插件,我想在该页面上显示菜单(sidenav)。问题是sidenav正确接收事件我需要在打开sidenav时调用map.setClickable( false )
并在用户关闭sidenav时将其设置回true
。在使用opening
打开菜单时,似乎有一个事件要检查,但我不知道如何跟踪用户何时关闭菜单。
答案 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
菜单关闭后。
使用这些输出事件,在处理程序中,如果菜单打开或不打开,您可以保留菜单的标志:)