始终需要用于反应形式的Angular 4 DatePicker的ngBootstrap

mtp*_*ltz 7 datepicker ng-bootstrap angular

使用反应形式我添加了ngbDatePicker:

<input type="text"
        id="business_incorp_date"
        class="form-control"
        formControlName="business_incorp_date"
        ngbDatepicker
        #incorporatedDatePicker="ngbDatepicker"
        (click)="incorporatedDatePicker.toggle()"
        readonly>
Run Code Online (Sandbox Code Playgroud)

对于以下形式的表单模型:

this.form = this.formBuilder.group({
  id: [
    0, [Validators.required]
  ],

  // ... removed for brevity

  business_type: [
    '', [Validators.required]
  ],
  business_incorp_date: [
    '', [FormValidators.date] // <-- NOT REQUIRED BY MODEL
  ],
  business_desc: [
    '', [Validators.required]
  ]

  // ...
});
Run Code Online (Sandbox Code Playgroud)

但是,如果该字段为空,则对于以下内容仍然是ngInvalid ngbDateFormat:

{ "ngbDate": { "invalid": { "year": null, "month": null, "day": null } } }
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何使DatePicker字段允许空字符串?

mtp*_*ltz 6

答案由@ pkozlowski.opensource通过github问题提供,该问题声明必须将模型设置为null以避免对可选字段进行验证.