如何在禁用日期选择的同时允许在 ngbdatepicker 中进行月份导航?

How to allow month navigation in ngbdatepicker while keeping the dates selection disabled?

Angular版本:6
库:ngbbootstrap
图书馆参考链接:
https://ng-bootstrap.github.io/#/components/datepicker/examples
https://ng-bootstrap.github.io/#/components/datepicker/api

使用上述库显示特定日期,我需要启用日期选择器的月份导航但禁用日期选择(单击)。

以下是我渲染日期选择器的代码,其中 <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>

这方面的一些帮助会很棒!

您可以使用 markDisabled 函数将特定日期标记为禁用。在您的 ngb-datepicker 上进行如下设置:

<ngb-datepicker #datepicker 
    [(ngModel)]="model" 
    [markDisabled]="isDisabled"
    ...
>
</ngb-datepicker>

然后定义一个 isDisabled 函数,它将 return 为真(这具有将所有日期标记为禁用的效果):

 isDisabled = (date: NgbDate, current: {month: number}) => true;

月份导航控件仍将处于活动状态,但无法选择任何日期。请参阅 this StackBlitz 以获得演示。