我已经使用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') }
因此,当我提交表单时,我使用控制台输出日期值。
如果我使用日历设置日期,则控制台中的输出正确如下:
当我在输入框中键入日期并单击“过滤器”时,我在控制台28/03/2019中获得了上一个日期,这是不正确的:
答案 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>