Я использую плагин cordova-google-maps
с моим ионическим приложением 2, и я хочу показать меню (sidenav) на этой странице. Проблема в том, что sidenav правильно принимает события. Мне нужно вызвать map.setClickable( false )
при открытии sidenav и вернуть его в true
, когда пользователь закроет sidenav. Кажется, есть событие для проверки при открытии меню с помощью opening
, но я не знаю, как отслеживать, когда пользователь закрывает меню.
Как обнаружить боковое меню открыть/закрыть в ионном 2?
Ответ 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
Когда меню закрыто.
Используя эти выходные события, в ваших обработчиках вы можете сохранить флаг для меню, если оно открыто или нет:)