我正在使用Ionic v4进行Ionic-Angular项目。我在matdatepicker的输入标签中尝试了max attr。值为空白时,其工作。但是,当我以编程方式在输入中设置值时,最大验证无效。我使用ngModel,formcontrol和formcontrolname绑定设置值。但是每次max attr都不起作用。
<mat-form-field class="full-width">
<input matInput [matDatepicker]="picker" readonly placeholder="Date Performed" [max]="todayDate" (click)="picker.open()"
[formControl]="serializedDate" formControlName="selecteddate">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
let convetedDate = moment('1544466600000', "x").format("DD-MMM-YYYY");
this.myDate = new Date(Date.parse(convetedDate));
this.serializedDate = new FormControl(this.myDate);
答案 0 :(得分:0)
在将todayDate
绑定为日期选择器的[max]
时,您的todayDate
变量应包含最大日期。不能使用ngModel或formControl进行设置。
我使用您的示例创建了一个stackblitz,其中在逻辑中设置了todayDate
变量,并且该变量按预期工作。 Here
希望这会有所帮助
编辑:使用[max]
或serializedDate
设置ngModel
的值后,[formControl]
仍在工作。查看更新的Stackblitz here
我认为您为什么不能在日期选择器中看到最大有效值是因为您为日期控件设置的日期是12/10/2018,而max
被设置为今天的日期。因此,尝试导航到当前月份,您会像在栈顶中一样看到今天日期之后的禁用日期。