是否可以刷新日期选择器的输入值?

时间:2019-06-27 15:08:13

标签: javascript html angular input datepicker

我正在尝试按日期范围进行过滤,所以我有一个类似这样的日期选择器

  <form class="example-form">
       <mat-form-field style="width:100%">
          <input matInput placeholder="Rango de fechas a buscar" [(ngModel)]="dateRange"  name="Rango de fechas a  buscar" [owlDateTimeTrigger]="dt" [owlDateTime]="dt"
                          [selectMode]="'range'">
                          <owl-date-time [pickerType]="'calendar'" name="Rango de fechas" #dt></owl-date-time>
       </mat-form-field>
  </form>    

现在在组件上,我有以下代码

resetDate() {
let year = new Date().getFullYear();
let initialYear = "01/01/"+year;
let finalYear = "12/31/"+year;
this.dateRange[0] = new Date(initialYear);
this.dateRange[1] = new Date(finalYear);
}

我第一次加载该页面时,它的默认过滤器是当前年份,问题是,如果我用datePicker选择任何日期,然后在clearFilters上再次调用resetDate,则值会更改并且该过滤器适用设置为默认日期(当前年份),但是在视图上,您​​仍然可以看到带有日期选择器的旧选择日期

有什么方法可以修复视图吗?

2 个答案:

答案 0 :(得分:1)

您可以通过重置数组dateTimeRange

更新重置方法
 resetDate() {
    let year = new Date().getFullYear();
    let initialYear = "01/01/" + year;
    let finalYear = "12/31/" + year;
    this.dateTimeRange = [];
    this.dateTimeRange.push(new Date(initialYear));
    this.dateTimeRange.push(new Date(finalYear));
  }

演示https://stackblitz.com/edit/owl-datetimepicker-lmmxrk?file=src%2Fapp%2Frange%2Frange.component.ts

答案 1 :(得分:0)

我自己找到了解决方案,

<mat-form-field>
  <input matInput [(ngModel)]="fromDate" [matDatepicker]="from" (change)="onChangeEvent($event)" placeholder="From">

  <mat-datepicker-toggle matSuffix [for]="from"></mat-datepicker-toggle>
  <mat-datepicker #from></mat-datepicker>
</mat-form-field>

我不得不将[(ngModel)]更新为[(ngModel)]="fromDate",而不是[matDatepicker]="from"