首页 > 解决方案 > Primeng 日历 - 不更新 formControlName 值

问题描述

选择新的日历值不会更新 formControlName 中的值

我尝试将模型属性设置为字符串,还尝试将日历上的 dataType 设置为字符串。要从模型中设置日历的默认值,我必须将值转换为新日期。听 onBlur 也会显示旧值,而不是新值。

我正在使用 Angular 7、Ionic 4 和 PrimeNg 7.1

ngOnInit() {

  this.form = new FormGroup({
      dfrDate: new FormControl(null, {
        updateOn: 'blur',
        validators: [Validators.required]
      }),



<p-calendar  #dfrDateRef dataType="string"  showButtonBar="true" formControlName='dfrDate' [showIcon]="true" ></p-calendar>

我希望表单控件值能够像所有其他表单字段一样自动更新。我可以通过在提交表单时使用 viewChild 来解决这个问题,但是对于这个应用程序中的每个日期字段来说,这样做会很痛苦

标签: angularprimengionic4

解决方案


要检查更改,请使用 onSelect 事件,如下所示:

鉴于:

<p-calendar 
    [(ngModel)]="inputDate"
    (onSelect)="inputDateChanged()">
</p-calendar>

在控制器中:

public inputDateChanged(): void {
    // Do something with this.inputDate
}

推荐阅读