我对Ionic框架非常陌生 在docs之后我创建了一个像这样的搜索栏:
<ion-searchbar
[(ngModel)]="searchQuery"
[showCancelButton]="true"
(ionInput)="search($event)">
</ion-searchbar>
ionInput当搜索栏输入发生变化时,包括已清除。
这可以按预期工作。
但是我想要一个不同的行为。每次输入更改时我都不想触发search($event)
,但是当用户点击“输入”键或单击按钮时,我找不到发出的output event。
这种行为是否有解决方案?
答案 0 :(得分:25)
您应该能够将Angular 2键盘绑定添加到keyup
和click
等元素
模板:
<ion-searchbar #q
[showCancelButton]="true"
(keyup.enter)="search(q.value)">
</ion-searchbar>
组件TS:
search(q: string) {
console.log(q);
}
答案 1 :(得分:1)
使用Angular的Ionic 5,您必须将ion-searchbar
包裹在这样的表单标签中:
<form (ngSubmit)="hideKeyboard()">
<ion-searchbar (ionChange)="search($event)"></ion-searchbar>
</form>
在使用电容器的组件中:
import { Plugins } from '@capacitor/core';
const { Keyboard } = Plugins;
...
hideKeyboard() {
Keyboard.hide();
}
当然,您可以使用ngSubmit事件进行搜索,不仅隐藏键盘。
答案 2 :(得分:0)
我能够通过(search)
输出事件捕获“ Enter”键单击或“ search”键单击
<ion-searchbar
(search)="search($event)">
</ion-searchbar>