在物料日期范围选择器中禁用开始日期

时间:2020-11-02 18:11:15

标签: angular angular-material

问题:我需要有条件地禁用开始日期的编辑。

按照文档Datepicker | angular Material

在某些情况下,我要求开始日期不可修改。如果它是在2020年9月15日通过的,则它必须保持这种状态。但是,打开日历后,用户只需单击几次即可更改开始日期。

感谢您的提前帮助

2 个答案:

答案 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)
    }
  });
 }