Есть ли способ установить Angular Material Datepicker day на 1? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь реализовать Месяц и Год только в 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 Ответ

1 голос
/ 13 июня 2019

Вы можете использовать привязку события 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);
}

Вот демоверсия .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...