有没有办法将Angular Material Datepicker day设置为1?

时间:2019-06-13 03:01:45

标签: angular angular-material-datetimepicker

我试图仅在Angular Material Datepicker(基于他们的文档)中实现Month和Year。我注意到默认情况下是今天。例如,今天的日期是2019年6月13日,而我选择的是2019年5月(月),则返回2019年5月13日。

我现在正在想将日期默认设置为1,这样它将导致2019年5月1日或2月1日或3月1日等。

更新: 我已经通过在组件文件中设置像这样的值来解决了这一部分

this.form = new FormGroup({
   date: new FormControl(moment().startOf('month'), validators: [Validators.required]
});

如果我选择了5月31日,并且假设当前月份是6月而没有31号,那么我希望它在6月30日返回,但是会变成6月1日。这是一个错误吗?

1 个答案:

答案 0 :(得分:1)

您可以利用monthSelected事件绑定,这样,只要您选择一个月,就会触发一个方法。

首先,我们将monthSelected事件绑定到onMonthSelect()方法。

<mat-form-field>
  <input matInput [(ngModel)]="selectedDate" (ngModelChange)="onDateSelect($event)" [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker (monthSelected)="onMonthSelect($event)"  #picker></mat-datepicker>
</mat-form-field>

在您的component.ts上,我们绑定selectedDate,以便选择每月的第一天。

onMonthSelect(event) {
  this.selectedDate = new Date(event.getFullYear(), event.getMonth(), 1);
}

这里是demo