【问题标题】:How to detect if side menu is open/closed in ionic 2?如何检测离子2中的侧边菜单是否打开/关闭?
【发布时间】:2018-08-13 14:45:15
【问题描述】:

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

【问题讨论】:

    标签: ionic-framework


    【解决方案1】:

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

    例如修改 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】:

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

      离子拖动

      当菜单被拖开时。

      ionOpen

      菜单打开时。

      离子关闭

      菜单关闭时。

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

      【讨论】:

      • 我有同样的问题,我在文档中发现了同样的事件,但我不知道如何订阅它们。可以给我看看吗?
      • 以下是在 .html 文件中使用 ionClose 的方法:(ionClose)="methodToExecute()"。我也在寻找如何“订阅”它,我想它会对某人有所帮助^^
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 2017-12-01
      相关资源
      最近更新 更多