Estaba teniendo un problema al intentar deshabilitar las fechas usando el selector de fechas de ng2-bootstrap. En mi app.module.ts, importé la biblioteca como tal:
import {DatepickerModule} from 'ng2-bootstrap'; @NgModule({ imports: [ DatepickerModule.forRoot() ],En mi html:
<div class="col-sm-6 form-group has-feedback" [ngClass]="displayFeedBackCss('testDte')"> <label for="testDte">TEST DATE<span class="text-danger">*</span></label> <datepicker [(ngModel)]="testDte" [showWeeks]="true" [minDate]="minDate" [dateDisabled]="disabledDate" [onlyCurrentMonth]=true ></datepicker> </div>En mi archivo ts:
disabledDate:any; date:Date; ngOnInit(): void { this.date = new Date(); this.disabledDate = [ {dt: this.date.getDate()-1, mode: 'day'}, {dt: this.date.getDate()-2, mode: 'day'} ]; }Sin embargo, seguí recibiendo este mensaje de error en la consola:
EXCEPTION: Error in ./e class e - inline template:25:6 caused by: Cannot read properties of undefined (reading 'getFullYear') e.handleError @ vendor.2b9f55e0bbcf755a8964.js:30 vendor.2b9f55e0bbcf755a8964.js:30 ORIGINAL EXCEPTION: Cannot read properties of undefined (reading 'getFullYear')Incluso traté de codificar las fechas como '2021-12-16' y '16/12/2021'. Sin embargo, el mismo mensaje de error sigue apareciendo. ¿Algunas ideas?
¡Gracias!
Parece que el problema es que la configuración de las fechas datesDisabled debe ser una matriz de fechas de acuerdo con los documentos . Y parece que has usado dateDisabled (falta 's')
por lo que su código de plantilla debe cambiarse con
<datepicker [(ngModel)]="testDte" [showWeeks]="true" [minDate]="minDate" HERE >>>> [datesDisabled]="disabledDate" [onlyCurrentMonth]=true ></datepicker> y el código de su componente también debe ajustarse según los documentos para que lo que se pasa a la configuración de datesDisabled se pueda interpretar correctamente.
ejemplo de los documentos:
disabledDates = [ new Date('2020-02-05'), new Date('2020-02-09') ];Tenga en cuenta que ng2-bootstrap ha quedado obsoleto. Sugiero pasar a ngx-bootstrap
install ngx-bootstrap --saveY consulte la respuesta de Fabio .
Lo siguiente es para la versión anterior.
La opción dateDisabled toma
dateDisabled(?Array<{date:Date, mode:string}>) - matriz de fechas deshabilitadas si elmodeesdayo años, etc.
ngOnInit(): void { this.date = new Date(); let disabledStartDate = new Date(); disabledStartDate.setDate(this.date.getDate()-1); let disabledEndDate = new Date(); disabledEndDate.setDate(this.date.getDate()-2); this.disabledDate = [ {date:disabledStartDate , mode: 'day'}, {date:disabledEndDate , mode: 'day'} ]; }