Угловой материал Datepicker получает значение при изменении

Я использую новую версию углового и угловатого материала. Мне нужно получить значение datepicker в момент изменения пользователем даты, чтобы передать это значение функции и сделать что-то.

DatePicker

  <mat-form-field>
    <input matInput [matDatepicker]="picker" placeholder="Choose a date" [(ngModel)]="roomsFilter.date">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
    <mat-datepicker #picker [(ngModel)]="roomsFilter.date" ngDefaultControl (selectedChanged)="onChange($event)"></mat-datepicker>
  </mat-form-field>

и это функция.

  public onChange(event: any, newDate: any): void {
    console.log(event.target.value);
    // this.getData(newDate);
  }

Ответы

Ответ 1

Извините, я не публиковал ответ раньше, но я решил проблему с комментарием @AJT_82. вот код.

Компонент HTML

  <mat-form-field>
    <input matInput [matDatepicker]="picker" placeholder="Choose a date" [(ngModel)]="roomsFilter.date">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
    <mat-datepicker #picker [(ngModel)]="roomsFilter.date" ngDefaultControl (selectedChanged)="onDate($event)"></mat-datepicker>
  </mat-form-field>

compoment ts

  public onDate(event): void {
    this.roomsFilter.date = event;
    this.getData(this.roomsFilter.date);
  }

В основном, я просто прошел $event datepicker чтобы получить значение.

Ответ 2

<mat-form-field>
  <input matInput [matDatepicker]="expiration1" placeholder="Expiration" [formControl]="expiration" required (dateChange)="EndDateChange($event)">
  <mat-datepicker-toggle matSuffix [for]="expiration1"></mat-datepicker-toggle>
  <mat-datepicker #expiration1></mat-datepicker>
</mat-form-field>

Пожалуйста, проверьте эту демонстрационную ссылку, чтобы вы получили больше идей. ПримерExample

Ответ 3

Согласно официальной документации, MatDatepickerInput имеет dateInput EventEmitter и выдает выбранную дату.

<mat-form-field>
 <input (dateInput)="OnDateChange($event.value)"                                                                                                                               matInput                                                                  [matDatepicker]="picker"                                                                   [placeholder]="field.label" />
<mat-datepicker-toggle matSuffix [for]="picker">
</mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>