Я использую циновку даты в моей форме. Я вставляю некоторые записи. Это прекрасно работает с проверкой формы. Но когда ту же запись я пытаюсь обновить, тогда моя форма показывается недействительной. Это связано с тем, что дата недействительна.
Случай, когда форма показывает недействительным - когда минимальная дата больше значения модели.
Почему это происходит? Это поведение по умолчанию? Как заставить это работать?
component.html
<form class="form-container" #pointAllocationForm="ngForm" (ngSubmit)="onSubmit()">
<mat-form-field class="example-full-width">
<div class="start-date">
<label class="required"><strong>Start Date : </strong></label>
<mat-form-field>
<input matInput [matDatepicker]="startDatepicker" [min]="minDate" placeholder="Choose a date" name="StartDate"
[(ngModel)]="myDate" #StartDate="ngModel" (ngModelChange)="setEndDate($event)" required>
<mat-datepicker-toggle matSuffix [for]="startDatepicker"></mat-datepicker-toggle>
<mat-datepicker #startDatepicker></mat-datepicker>
<mat-error *ngIf="StartDate.invalid && (StartDate.dirty || StartDate.touched)">Please enter a valid date.</mat-error>
</mat-form-field>
</div>
</mat-form-field>
<button class="btn btn-success" type="submit" [disabled]="pointAllocationForm.invalid">
Update Points </button>
</form>
component.ts
import {Component} from '@angular/core';
@Component({
selector: 'datepicker-min-max-example',
templateUrl: 'datepicker-min-max-example.html',
styleUrls: ['datepicker-min-max-example.css'],
})
export class DatepickerMinMaxExample {
minDate = new Date();
myDate = new Date(2018, 9, 10);
}