【发布时间】:2020-11-06 01:23:41
【问题描述】:
问题:我需要有条件地禁用开始日期的编辑。
按照文档Datepicker | angular Material
在特定情况下,我要求开始日期不可编辑。如果它在 2020 年 9 月 15 日通过,那么它需要保持这种状态。然而,当日历打开时,用户只需点击几下,开始日期就会改变。
提前感谢您的帮助
【问题讨论】:
问题:我需要有条件地禁用开始日期的编辑。
按照文档Datepicker | angular Material
在特定情况下,我要求开始日期不可编辑。如果它在 2020 年 9 月 15 日通过,那么它需要保持这种状态。然而,当日历打开时,用户只需点击几下,开始日期就会改变。
提前感谢您的帮助
【问题讨论】:
我不知道我的解决方案是否对您有用。我使用了一个变量来保存开始日期和一个观察表单控件变化的函数。
changeStartDate(){
this.formEditOffer.get('dataRange').get('start').valueChanges.subscribe(data=> {
if(data !== this.startDate){
this.formEditOffer.get('dataRange').get('start').patchValue(this.startDate)
}
});
}
【讨论】:
根据文档,您可以使用 disabled 属性禁用日期选择
<p>
<mat-form-field appearance="fill">
<mat-label>Completely disabled</mat-label>
<input matInput [matDatepicker]="dp1" disabled>
<mat-datepicker-toggle matSuffix [for]="dp1"></mat-datepicker-toggle>
<mat-datepicker #dp1></mat-datepicker>
</mat-form-field>
</p>
有了这个,您应该能够根据您需要的任何条件动态设置disabled 属性。即
<input matInput [matDatepicker]="dp1" [disabled]="ENTER YOUR CRITERIA HERE">
有了这个,您应该能够根据您的业务规则禁用输入
【讨论】: