angular - PrimeNG 自动完成 onBlur 在 onSelect 之前触发。如何获得不匹配的值
问题描述
如果没有找到键入的搜索词,我有一个 primeNG 自动完成组件需要运行一些代码。目前,我在 onBlur 事件的处理程序中有此代码。
我遇到的问题是根据https://github.com/primefaces/primeng/issues/4403 Prime Faces 将单击下拉菜单视为单击新元素,从而在用户实际离开之前触发 onBlur元素。
不知道他们这样做的原因是什么,但在我看来,正因为如此,当他们离开组件时,我无法捕捉到真正不匹配搜索的价值。还有另一种方法可以做到这一点吗?
解决方案
我遇到了同样的问题并添加了 100 毫秒的超时:
<p-autoComplete formControlName="country" (onSelect)="onSelectCountry()" (onBlur)="onBlurCountry()"></p-autoComplete>
onSelectCountry() {
console.log("Selected Country");
}
onBlurCountry() {
setTimeout(()=>{
this.onSelectCountry()
}, 100);
}
推荐阅读
- linux - 如何从标准输出中获取第 13 行和倒数第二行
- javascript - 将类组件更改为功能组件:使用方法
- datatables - Tail.select 数据表
- android - 应用程序在启动时崩溃并给出空指针异常。如果用户已登录,我如何更改代码以开始下一个活动?
- django - 如何使用中间件将 http://www.example.com 重定向到 https://example.com
- c++ - 将数据保存到 .DAT 文件
- angular - 将 Observable 链接到组件的问题
- typescript - 如何从 AWS CDK 开始在 ASG EC2 实例上运行命令
- php - 将 php 版本升级到 7.2 后 PHP 会话不起作用
- bash - Bash 子字符串比较不适用于命令表达式