PrimeNG 自动完成 onBlur 在 onSelect 之前触发。如何获取不匹配的值

use*_*012 5 typescript angular2-forms primeng angular

我有一个 primeNG 自动完成组件,如果未找到键入的搜索词,则需要运行一些代码。目前我在 onBlur 事件的处理程序中有这段代码。

我遇到的问题是根据https://github.com/primefaces/primeng/issues/4403 Prime Faces 将下拉列表上的单击视为新元素上的单击,从而使 onBlur 在用户实际离开之前触发元素。

不确定他们这样做的原因是什么,但在我看来,正因为如此,当他们离开组件时,我无法捕获真正的不匹配搜索的价值。还有其他方法可以实现此目的吗?

小智 3

我遇到了同样的问题,并添加了 100 毫秒的超时:

<p-autoComplete formControlName="country" (onSelect)="onSelectCountry()" (onBlur)="onBlurCountry()"></p-autoComplete>

onSelectCountry() {
    console.log("Selected Country");
}

onBlurCountry() {
    setTimeout(()=>{
        this.onSelectCountry()
    }, 100);
}
Run Code Online (Sandbox Code Playgroud)