Есть ли способ установить Angular Material Datepicker day на 1?

Я пытаюсь реализовать Месяц и Год только в Angular Material Datepicker (основываясь на их документах). Я заметил, что по умолчанию он получает текущий день. Например, сегодняшняя дата 13 июня 2019 года, и я выбрал май (месяц) 2019(год), и он возвращается 13 мая 2019 года.

Сейчас я думаю о том, чтобы сделать день по умолчанию равным 1, чтобы он вылился в 1 мая 2019 года, 1 февраля или 1 марта и т. Д. Как бы я это сделал?

ОБНОВЛЕНИЕ: я уже решил эту часть, установив значение, как это в файле компонента

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

Если в случае, если я выбрал 31 мая и предположил, что текущим месяцем является июнь, а не 31, то я ожидаю, что он вернется как 30 июня, но что произойдет, если он стал 1 июня. Это ошибка?

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);
}

Вот демо.

Другие вопросы по тегам