我正在使用NgbDatePicker,并且在页面的“初始加载”中,我希望今天的日期显示在datepicker的输入字段中。 当前在初始加载中,正在显示占位符值。有什么方法可以在加载时在输入字段中显示今天的日期。
<input width="100px" class="form-control " [(ngModel)]="selectedDate" #date
(ngModelChange)="dateSelected(date.value)" placeholder="dd-mm-yyyy" name="dp" ngbDatepicker #d="ngbDatepicker"
pattern="[0-9]{4}[-][0-9]{2}[-][0-9]{2}" [minDate]="{year: 2010, month: 1, day: 1}" [maxDate]="maxDate"
[markDisabled]="isDisabled" />
<div class="input-group-append">
<button class="btn btn-outline-secondary fas fa-calendar-alt" (click)="d.toggle()"
(change)="dateSelected($event.target.value)" type="button"
(ngModelChange)="dateSelected($event.target.value)"></button>
</div>
预期结果:在加载时,今天的日期应显示在输入字段中。
实际结果:仅显示占位符的值。
答案 0 :(得分:0)
如果您想充分利用NgBoostrap DatePicker模块,可以将NgbCalendar service导入component.ts中,并使用它来获取今天的日期。请注意,NgBootstrap日期选择器不接受通常的JavaScript Date对象或日期字符串作为输入,因为它使用了NgbDateStruct界面。
首先,将NgbCalendar导入到component.ts中,
import { NgbCalendar, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
然后,使用getToday()
方法并将今天的日期分配给selectedDate
属性。您的日期选择器应使用今天的日期进行初始化。
selectedDate: NgbDateStruct = undefined;
constructor(private calendar: NgbCalendar) {
this.selectedDate = calendar.getToday()
}
或者,您可以使用Vanilla JavaScript设置今天的日期,
constructor(private calendar: NgbCalendar) {
const today = new Date();
this.selectedDate = {
day: today.getDate(),
month: today.getMonth() + 1,
year: today.getFullYear()
};
}
答案 1 :(得分:0)
请注意ngbDatepicker模型是一个NgbDate对象。您必须在构造函数或onInit方法中设置[ngModel] =“ selectedDate”变量。
ngOnInit() {
var today = new Date();
this.selectedDate = new NgbDate(today.getFullYear(), today.getMonth(), today.getDate())
}
谢谢