首页 > 解决方案 > 以编程方式设置 NgbDatePicker 的日期

问题描述

我的组件中有两个 NgbDatePicker:

      input(
        type="text",
        ngbDatepicker,
        #d="ngbDatepicker",
        [readonly]="true",
        formControlName='startDate',
        (dateSelect)='setNewMinDate($event)',
        )
      input(
        type="text",
        ngbDatepicker,
        #e="ngbDatepicker",
        [readonly]="true"
        formControlName='endDate'
        )

和这个处理程序:

  @ViewChild('e', {static: false}) endDateComponent: Query;

  setNewMinDate(e: NgbDateStruct) {
    const minDate: Moment = moment(e.year + '-' + e.month + '-' + e.day);

    this.createAnnForm.value.endDate = minDate.toISOString();
    this.endDateComponent.navigateTo(e);
  }

表单模型适用于 ISO 日期。

发生的情况是日历弹出更改是新的日期,但输入字段不会自行更新。问题是什么?

标签: angularangular-formsngb-datepicker

解决方案


广告@Eliseo 建议,我需要使用 ReativeForm API

form.get('endDate').setValue(...)

更新输入字段


推荐阅读