Angular Material datepicker 不正确的默认日期

Angular Material datepicker incorrect default date

我正在使用 Material 日期选择器,并且日期选择器的日期始终默认为 MatNativeDateModule 的 1/1/1 和 MatMomentDateModule 的 1/1/0001。即使以编程方式设置日期,日期也默认为 1/1/1。

我正在使用响应式表单。当我不提供 formControlName 时,日期默认为当前日期,这是所需的行为,但当我提供 formControlName 时,它显示的日期不正确。

我正在使用 Angular 版本 12 和 Angular Material 版本 12.2.5。我只是在我的主模块中导入 MatDatepickerModuleMatNativeDateModuleMatMomentDateModule,而在 html 中,所有内容都是从 angular 文档中复制的。 下面是我的代码

<mat-form-field appearance="fill">
      <mat-label>Start Date</mat-label>
      <input matInput formControlName="startDate" [matDatepicker]="picker1">
      <mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
      <mat-datepicker #picker1></mat-datepicker>
    </mat-form-field>

问题中有更多代码会很好,但如果我理解正确的话..

formControlName="startDate" 更改为 [formControl]="startDate" 并确保您已在组件中设置 formControl。

例如:

startDate = new FormControl(new Date(2021, 1, 1));

如果它是 FormGroup 的一部分,则应使用 formControlName。然后在.ts中,

yourGroup = new FormGroup({
  startDate = new FormControl(new Date(2021, 1, 1));
});

更多关于如何使用 new Date() here