我有一个输入元素,其中包含使用PrimeNG日历创建的附加日期选择器 .
HTML部分
<p-calendar showAnim="slideDown"
id="calendar"
[showIcon]="true
[(ngModel)]="myDate"
(blur)="onBlurMethod($event)">
</p-calendar>
这里我使用了PrimeNG日历标签 . 我使用了一个隐藏的文本框,所以我可以选择更新的值,但它反映在文本框中 . 如何捕获任何事件的更新值?
<input type="hidden" id = "datePickerText" [ngModel]="myDate">
当用户通过直接输入input元素来更改日期时,我可以使用input元素的blur事件获取值,如上所示 . 但是当用户从datepicker更改日期时(即通过单击日历上的日期),不会调用模糊处理程序 .
如何检测通过 datepicker
进行的所选日期的更改,而不是通过键入输入元素?
3 回答
PrimeNG calendar有两个可以使用的事件:
onBlur
和onSelect
.所以您可能想要更改代码以使用
onBlur
而不是blur
:另一种方法可以是使用
get
和set
属性直接检测更改 .无论你选择哪种方式,你都需要确保知道什么时候触发逻辑 - 并且它不会被不必要地运行 . 这种方式可能会变得很麻烦,并且会引起关注问题的分离,如果您因为触发而必须进行远程调用,则可能不建议这样做 .
你可以使用
(ngModelChange)="yourMethod()"
.