问题:我需要有条件地禁用开始日期的编辑。
按照文档Datepicker | angular Material
在某些情况下,我要求开始日期不可修改。如果它是在2020年9月15日通过的,则它必须保持这种状态。但是,打开日历后,用户只需单击几次即可更改开始日期。
感谢您的提前帮助
答案 0 :(得分:0)
根据文档,您可以使用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">
通过此操作,您应该能够根据业务规则禁用输入
答案 1 :(得分:0)
我不知道我的解决方案是否对您有用。我使用了变音来保存开始日期,并使用了一个函数来观察formcontrol的变化。
changeStartDate(){
this.formEditOffer.get('dataRange').get('start').valueChanges.subscribe(data=> {
if(data !== this.startDate){
this.formEditOffer.get('dataRange').get('start').patchValue(this.startDate)
}
});
}