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。
我在 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。