Как обнаружить боковое меню открыть/закрыть в ионном 2?

Я использую плагин cordova-google-maps с моим ионическим приложением 2, и я хочу показать меню (sidenav) на этой странице. Проблема в том, что sidenav правильно принимает события. Мне нужно вызвать map.setClickable( false ) при открытии sidenav и вернуть его в true, когда пользователь закроет sidenav. Кажется, есть событие для проверки при открытии меню с помощью opening, но я не знаю, как отслеживать, когда пользователь закрывает меню.

Ответ 1

Для использования ionDrag, ionOpen, ionClose в Ionic2 вы должны добавить его в самом меню

например, изменить меню в файле app.html на

<ion-menu [content]="content" (ionOpen)="menuOpened()" (ionClose)="menuClosed()">

После использования "События" см. документ здесь: 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
});

Я надеюсь, что эта помощь

Ответ 2

Кажется, новые события были добавлены в компонент меню, который решает эту проблему. Я также использую плагин google maps, и он отлично работает http://ionicframework.com/docs/v2/api/components/menu/Menu/

ionDrag

При перетаскивании меню.

ionOpen

Когда меню открыто.

ionClose

Когда меню закрыто.

Используя эти выходные события, в ваших обработчиках вы можете сохранить флаг для меню, если оно открыто или нет:)