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