5

I have problem because I do not know how to fire a change event after someone picks a date.

My current code:

<div class="d-flex align-items-center">
    <mat-form-field appearance="fill">
      <mat-label>Wybierz przedział czasowy
      </mat-label>
      <mat-date-range-input [formGroup]="range" [rangePicker]="picker">
        <input matStartDate formControlName="start" placeholder="Data początkowa">
        <input matEndDate formControlName="end" placeholder="Data końcowa">
      </mat-date-range-input>
      <mat-datepicker-toggle matSuffix [for]=" picker"></mat-datepicker-toggle>
      <mat-date-range-picker #picker></mat-date-range-picker>

      <mat-error *ngIf="range.controls.start.hasError('matStartDateInvalid')">Zła data początkowa</mat-error>
      <mat-error *ngIf="range.controls.end.hasError('matEndDateInvalid')">Zła data końcowa</mat-error>
    </mat-form-field>
  </div>
1
  • Could you please elaborate your problem? @loczek
    – Muthupriya
    Commented Aug 26, 2020 at 18:49

1 Answer 1

9

you can know when change in differents ways

using (dataChange) or (dateInput) in each input:

<mat-date-range-input [formGroup]="range" [rangePicker]="picker">
    <input matStartDate formControlName="start" placeholder="Start date" (dateChange)="startChange($event)">
    <input matEndDate formControlName="end" placeholder="End date" (dateChange)="endChange($event)">
</mat-date-range-input>


startChange(event:MatDatepickerInputEvent)
  {
   console.log("startChange",event.value)
  }
  endChange(event:MatDatepickerInputEvent)
  {
   console.log("endChange",event.value)
  }

Of subscribing to valueChanges of the FormGroup/FormControl. e.g. in ngOnInit

ngOnInit()
  {
    this.range.get('start').valueChanges.subscribe(res=>{
      console.log("valueChange start",res)
    })
    this.range.get('end').valueChanges.subscribe(res=>{
      console.log("valueChange end",res)
    })
    this.range.valueChanges.subscribe(res=>{
      console.log("range Change",res)
    })
  }
2
  • Your first solution is not working but second with subscribe is nice. Thanks for help !
    – loczek
    Commented Aug 27, 2020 at 7:43
  • @loczek, an stackblitz using the first option: stackblitz.com/edit/angular-ai7kcs
    – Eliseo
    Commented Aug 27, 2020 at 8:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.