typescript - Angular Material datumväljare uttryck har ändrats efter att det kontrollerades fel med min och max
Jag har en Angular Material datepicker som har 1. Startdatum och 2. Slutdatum. Mitt slutdatum beror på startdatum. Det skulle vara något liknande denna formel:
- Startdatum=
2018/09/15 - Slutdatum=minst
StartDate+1day, högstStartDate + 2 months.
I början av init sätter jag dessa värden och allt fungerar bra, men när jag sedan ändrar mitt startdatum till något större än 2 månader får jag detta fel:
ExpressionChangedAfterItHasBeenCheckedError: Uttrycket har ändrats efter att det kontrollerades. Tidigare värde för 'ng-valid': 'false'. Nuvarande värde: 'true'.
Här är min kod :
startDateChange(event) {
this.formGroup.get(this.LocationFields.endDate).setValue(moment(event).add(1, 'days').format());
const afterOneDay = moment(event).add(1, 'days').format();
this.dropOffDateMax = moment(event).add(2, 'months').format();
this.dropOffDateMin = afterOneDay;
}
html :
<input readonly [style.width.px]="width" (click)="picker.open()" class="form-control datepickerInput {{inputClasses}}"
[class.is-invalid]="control.invalid" matInput [formControl]="control" [matDatepicker]="picker" [placeholder]="placeholder"
autocomplete="off" [min]="min" [max]="max" (dateChange)="changeEvent($event); isoString && onInputChange()">
<mat-datepicker-toggle [disableRipple]="true" matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker startView="year"></mat-datepicker>
Om jag tar bort dessa rader:
const afterOneDay = moment(event).add(1, 'days').format();
this.dropOffDateMax = moment(event).add(2, 'months').format();
this.dropOffDateMin = afterOneDay;
Ingen fel då;
Hur ändrar man min- och maxvärdena för en datumväljare utan att få fel?