Ionic 3(单击)事件进入模态在 ios 中不起作用

Ionic 3 (click) event into Modal doesn't work in ios

我在 IOS 上遇到了一个问题。 我正在实施聊天,其中有一个联系人列表,当您单击其中一个时,它将显示相关消息的列表。 它在 android 和浏览器(甚至在 IOS 浏览器)上运行完美,但在 IOS 上,当我单击联系人以显示消息时,没有任何反应。 我的函数不是从 html 调用的,即使我试图在我的 ion-content 上到处添加一些测试按钮。它只适用于我的 ion-header。

你能救我一命吗?

这是我的代码:

HTML :

<ion-header>
    <ion-toolbar>
        <ion-buttons>
            <button ion-button (click)="displayChat(undefined)">
                Test (works here)
            </button>
        </ion-buttons>
    </ion-toolbar>
</ion-header>
<ion-content class="no-scroll" style="height: 100% !important;">
    <div>
        <button ion-button (click)="displayChat(undefined)">
            Test ?
        </button>
        <ion-list class="contactList">
            <ion-item *ngFor="let chat of chats" 
             (click)="displayChat(chat)">
                {{chat.contactName}}
                 <br>
                <span class="chatDate">
                    {{chat.lastMessageSend}}
                </span>
            </ion-item>
        </ion-list>
        <button ion-button (click)="displayChat(undefined)">
            Test ?
        </button>
    </div>
</ion-content>
<ion-footer>
    <ion-toolbar>
        <ion-title>Footer</ion-title>
        <button ion-button (click)="displayChat(undefined)">
            Test ?
        </button>
    </ion-toolbar>
</ion-footer>

TS :

displayChat(chat: Chat) {
    console.log("Ok");
}

我减少了代码以提高可读性。

尽情享受吧!

编辑

.no-scroll .scroll-content {
    overflow: hidden;
}

.chatDate {
    float: right;
    font-size: 0.7em;
}

它在页脚中也不起作用。

在您的按钮组件中,尝试添加 ion-item 而不是 ion-button。我有一些类似的代码,它工作正常。

例如:

<button ion-item (click)="onClick()">Click me</button>

让我知道这之后会发生什么!随时准备提供帮助。

好的,我知道问题出在哪里了。

实际上,此代码是 运行 从 Popover 转换为 Ionic Modal。

我不得不让我的 Popover 保持打开状态以使用 OnDidDismiss 方法进行一些处理,但只有当弹出窗口保持打开状态时它才能执行此方法。

但是,在 IOS 中(当然),如果 Popover(或者可能是任何其他绝对元素)在您的模态后面,您将无法单击模态。

所以,为了解决这个问题,我创建了一个 Observable 来处理(Modal 的)OnDidDismiss 方法,我将它作为 viewCtrl.dismiss 方法的参数,以便在弹出视图,然后订阅 Observable。