我使用的是PrimeNG的日历组件.对于特定场景,我想覆盖默认的Enter键行为.目前,当日历打开时,按Enter键关闭日历.我想在日历关闭之前运行一些逻辑.
我已经判断过,在Enter键上,日历的onClose事件被调用.
Things I've tried:
在日历的按键事件上调用函数.如果按了Enter键,则运行我的自定义逻辑.但是,onClose事件在Keydown事件之前激发.因此,我的定制逻辑在日历关闭后运行
Possible Solution:个
如果我能找出是什么原因导致DatePicker关闭,那么我就可以运行我的定制逻辑.例如,当用户在外部单击或按Enter键时(在我的例子中),DatePicker关闭.
Further research:
我发现了GitHub的一个问题,用户希望在按Enter键时关闭日历覆盖.
https://github.com/primefaces/primeng/issues/9880个
在判断他们的更改时,我发现在onInputKeydown(event)函数中,当按下Enter键时,他们将日历的overlayVisible字段设置为false.我相信这就是触发日历的onClose事件的原因.只是指出这一点,以防有人发现这有帮助.
一百:
https://stackblitz.com/edit/primeng-calendar-demo-xbkrhr?file=src%2Fapp%2Fapp.component.ts个
在Stackblitz中,使用输入字段编辑日期,然后按Enter键.在控制台日志(log)窗口中,您将发现首先触发了onClose事件.在此之后,触发日历的Keydown事件.我希望KeyDown事件首先发生,这样我就可以在触发onClose事件之前执行一些定制逻辑.
Versions:个
PrimeNG版本:^17.5.0
Angular 版本:~15.2.0