【问题标题】:Ionic: side menu doesn't close before opening modal离子:侧边菜单在打开模式之前不会关闭
【发布时间】:2019-05-13 00:39:40
【问题描述】:

在 Ionic 3 中,我试图从侧边菜单中打开一个模式:

  <ion-item menuClose (click)="presentProductModal()"> Add Product</ion-item>

打开侧边菜单时,屏幕的其余部分会失去焦点。选择模态链接时,侧边菜单消失。但是,模态和主屏幕仍然没有焦点。 我猜这里有一些时间/承诺问题,但我不确定该怎么做。 有什么解决办法吗?

这里有两张图片展示了这个问题(“添加产品”链接打开了模式):

提前致谢!

【问题讨论】:

    标签: modal-dialog ionic3


    【解决方案1】:

    您可以使用菜单输出事件:ion-close

    监听此事件,并在菜单关闭后打开模式。

    在此处阅读有关菜单输出事件的更多信息:menu close event

    从 ion-item 中移除 menuClose 指令。在您的点击功能中,使用close 方法以编程方式关闭菜单。在此处阅读更多信息:Close menu programmatically.

    此方法将返回一个承诺,该承诺将在菜单完全关闭时解析,然后您可以在其解析中打开模式。

    this.menuController.close(<your menu id>).then(() => {
       this.modal.create.....
    })
    

    【讨论】:

    • 谢谢。似乎菜单实际上正在关闭(见第二张图片)。另外,我将如何收听该事件?我已经看到了一个将 '(ionClose)="some_function()'" 指令添加到菜单的示例,但是每次菜单关闭时都会触发一个函数...
    • 是的,菜单正在关闭,它仍然会关闭。它只是为了确保在菜单关闭后打开模式。
    • 所以我需要在单击菜单选项后启动的函数中监听 ion-close 事件......你能举一个例子来说明这是如何完成的吗?谢谢!
    • 我已经用更好的方法更新了我的答案。第一种方法将在菜单关闭时触发离子关闭。所以第二种方法将帮助你实现你想要的
    • 谢谢 - 我非常感谢您的帮助,但不幸的是这也不起作用:/
    【解决方案2】:

    模态的模板只是缺少包装标签。

    【讨论】:

      【解决方案3】:

      你可以使用 MenuController

      import { MenuController } from 'ionic-angular';
      constructor(public menuCtrl: MenuController) {
       }  
           If you want to close menu please use close() event
      
            this.menuCtrl.close()
      
           If you want to open menu please use open() event
      
            this.menuCtrl.open();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-25
        • 2017-02-12
        • 2014-09-06
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2016-12-01
        相关资源
        最近更新 更多