我正在使用ng-bootstrap日期选择器。 这是我用于日期选择器输入的 HTML
<input type="text"
id="datepicker{{i}}"
class="form-control"
formControlName="dateJoined"
ngbDatepicker
#incorporatedDatePicker="ngbDatepicker"
(click)="incorporatedDatePicker.toggle()"
(dateSelect)="onDateSelection($event)"
readonly>
但是,在从日期选择器本身中进行选择之前,我无法为此输入字段设置默认日期。
我在这里使用反应式表单,并且我已经将NgbDateStruct Date指定为表单值
const strDateTime = driver['JoinDate'];
const arr = strDateTime.split(' ');
const strDate = arr[0];
const dateArr = strDate.split('/');
const ngbDate: NgbDateStruct = {
year: dateArr[2],
month: dateArr[1],
day: dateArr[0],
}
this.addDriverForm.patchValue({
dateJoined: ngbDate
})
dateJoined
控件的值应该是下一个结构:
this.dateJoined = new FormControl({
year: 2020,
month: 5,
day: 16,
});
您需要验证所有道具都是数字,而不是字符串。
const ngbDate: NgbDateStruct = {
year: parseInt(dateArr[2], 10),
month: parseInt(dateArr[1], 10),
day: parseInt(dateArr[0], 10),
}
你也可以使用 NgbDate 类对象
const defaultDate = new NgbDate(
sDate.getFullYear(),
sDate.getMonth() + 1,
sDate.getDate()
);