首页 > 解决方案 > 如何在 Angular 8 中提供字符串作为 Ngbdatepicker 的输入

问题描述

我们在我们的应用程序中使用 ngbDatePicker。从后端获取日期作为字符串,ngbDatePicker 使用{year: Value, month: Value, day: Value}

<div class="input-group">
      <input class="form-control" 
          placeholder="yy/mm/dd" 
          [(ngModel)]="registerDate" 
          ngbDatepicker
          #d="ngbDatepicker" >
          <button class="input-group-addon" (click)="d.toggle()" type="button">
              <i class="fa fa-calendar"></i>
          </button>
    </div>

这里registerDate值以字符串形式出现。

它不读取字符串格式,我怎么让它可以被 ngbDatepicker 读取。

标签: javascriptangularngb-datepicker

解决方案


我建议您将您的[(ngModel)]分成两部分(请参阅此处[ngModel] 和 (ngModelChange) 如何一起工作?)。

然后你可以做这样的事情:

<input class="form-control" 
       placeholder="yy/mm/dd" 

       [ngModel]="getDateAsObject()"
       (ngModelChange)="writeDateToString($event)"

       ngbDatepicker
       #d="ngbDatepicker">

或者您可以将其临时保存为给定格式,仅在需要时将其转换为字符串。然后你可以坚持[(ngModel)]......而且它也会更高效。


推荐阅读