Я сталкивался с этим раньше, вот как я это решил.Не забудьте импортировать NgbDatepickerConfig
в ваш component.ts.
import { NgbDatepickerConfig, . . . } from '@ng-bootstrap/ng-bootstrap';
.
.
constructor(private config: NgbDatepickerConfig) {
const current = new Date();
config.minDate = { year: current.getFullYear(), month:
current.getMonth() + 1, day: current.getDate() };
//config.maxDate = { year: 2099, month: 12, day: 31 };
config.outsideDays = 'hidden';
}
А для component.html
<input class="form-control" ngbDatepicker (click)="datePicker.toggle()" #datePicker="ngbDatepicker" formControlName="date" placeholder="yyyy-mm-dd">
formControlName
применяется только в том случае, если вы используете реактивные формы.Если это не так, не стесняйтесь игнорировать его.
[EDIT] Как указал @Eliseo в комментариях, достаточно использовать minDate
, так что это не повлияет на все другие экземпляры Datepicker.,В ваших component.ts,
minDate = undefined;
.
.
constructor(private config: NgbDatepickerConfig) {
const current = new Date();
this.minDate = {
year: current.getFullYear(),
month: current.getMonth() + 1,
day: current.getDate()
};
}
А в вашем component.html используйте [minDate]
входные привязки
<input class="form-control" ngbDatepicker [minDate]="minDate" (click)="datePicker.toggle()" #datePicker="ngbDatepicker" formControlName="date" placeholder="yyyy-mm-dd">