Как разрешить навигацию по месяцам в ngbdatepicker, не отключая выбор дат?
Угловая версия: 6
Библиотека: ngbbootstrap
Ссылки на библиотеку:
https://ng-bootstrap.github.io/
https://ng-bootstrap.github.io/
Используя указанную выше библиотеку для отображения конкретных дат, мне нужно включить навигацию по месяцам в DatePicker, но отключить выбор (щелчок) дат.
Ниже приведен мой код для отображения DatePicker, где в <ng-template>
используется для пользовательского просмотра дня:
<ngb-datepicker #datepicker [(ngModel)]="model" (navigate)="date = $event.next" (select)="onDateSelect($event)"
(ngModelChange)="onModelChange($event)" [dayTemplate]="templete" [disabled]="disabled" [firstDayOfWeek]="0"></ngb-datepicker>
<ng-template #templete let-date="date">
<span *ngIf="!showFixedDates" class="custom-day" [class.range]="isFrom(date) || isTo(date) || isInside(date) || isHovered(date)"
[class.faded]="isHovered(date) || isInside(date) || (isContains(date) && showFixedDates)"
[class.focused]="focused && showFixedDates" [class.hidden]="isPrevious(date) || isAfter6Months(date)"
[class.previousRangeExtremes]="isPrevious(date) && ( isFrom(date) || isTo(date))" [class.previousRange]="isPrevious(date) && isInside(date)"
(mouseenter)="hoveredDate = date" (mouseleave)="hoveredDate = null">
{{ date.day }}
</span>
<span *ngIf="showFixedDates" class="custom-day" [class.focused]="focused"
[class.range]="isContains(date)" (mouseenter)="hoveredDate = date" (mouseleave)="hoveredDate = null">
{{ date.day }}
</span>
</ng-template>
Некоторая помощь в этом будет отличной!
1 ответ
Вы можете использовать markDisabled
функция, чтобы пометить определенные даты как отключенные. Установите это на вашем ngb-datepicker
следующее:
<ngb-datepicker #datepicker
[(ngModel)]="model"
[markDisabled]="isDisabled"
...
>
</ngb-datepicker>
Затем определите isDisabled
функция, которая будет возвращать true (это помечает все даты как отключенные):
isDisabled = (date: NgbDate, current: {month: number}) => true;
Элементы управления месяцами по-прежнему будут активны, но даты не будут выбраны. Пожалуйста, посмотрите этот StackBlitz для демонстрации.