ngx-daterangepicker-material-在输入框中输入日期时,无法为单个日期选择器设置模型

时间:2019-05-22 15:47:22

标签: angular datepicker

我已经使用ngx-daterangepicker-material和一个日期选择器创建了一个表单。我可以通过从日历中选择日期来设置日期。但是,如果我在键盘上的框中键入日期,则无法识别该日期,并且在选择框中设置的上一个日期将用作模型值。这可能吗,如果可以的话,我该如何实现?

这是我的页面中的指令:

<label for="submissionTimeFromDate" class="col-sm-3 text-sm-right col-form-label">Submission Time From</label>
<div class="col-sm-4">
  <input type="text" id="submissionTimeFromDate" name="submissionTimeFromDate" ngxDaterangepickerMd [(ngModel)]="filter.submissionTimeFromDate" class="form-control form-control-sm" style="margin-bottom: 8px" [singleDatePicker]="true" [autoApply]="true" [locale]="{format: 'DD/MM/YYYY'}" />
</div>

这里是在模型中设置此属性的方式。由于https://github.com/fetrarij/ngx-daterangepicker-material/issues/141处存在错误,因此必须采用这种方式:

 this.filter.submissionTimeFromDate = {startDate: moment().subtract(2, 'months'), endDate: moment().subtract(2, 'months') }

因此,当我提交表单时,我使用控制台输出日期值。

如果我使用日历设置日期,则控制台中的输出正确如下:

enter image description here

enter image description here

当我在输入框中键入日期并单击“过滤器”时,我在控制台28/03/2019中获得了上一个日期,这是不正确的:

enter image description here

1 个答案:

答案 0 :(得分:0)

我设法通过在输入框中添加一个keyup侦听器来解决此问题,该侦听器在文本框中输入值时会更新模型


                <label for="submissionTimeFromDate" class="col-sm-3 text-sm-right col-form-label">Submission Time From</label>
                <div class="col-sm-4">
                    <input #submissionTimeFromDateInput type="text" id="submissionTimeFromDate" name="submissionTimeFromDate" ngxDaterangepickerMd [(ngModel)]="submissionTimeFromDate"
                           class="form-control form-control-sm"  style="margin-bottom: 8px" (keyup)="updateSubmissionTimeFromDateTextInput(submissionTimeFromDateInput.value)"
                           [singleDatePicker]="true" [autoApply]="true" [locale]="{format: 'DD/MM/YYYY'}" (datesUpdated)="clearSubmissionTimeFromDateTextInput()"/>
                </div>