选择两个日期后关闭日期范围日历组件

deg*_*ath 1 frontend calendar date-range primeng angular

PrimeNg 提供了非常好的日历组件,它工作得非常好,但是有没有办法在选择 2 个日期后关闭它?

<p-calendar [(ngModel)]="rangeDates" 
            selectionMode="range"
            [readonlyInput]="true"></p-calendar>
Run Code Online (Sandbox Code Playgroud)

文档中, 我注意到两件有趣的事情: - 事件onSelect,不幸的是它可以在普通日历上工作,我们按一次(这里我们需要按两次) - 属性:hideOnDateTimeSelect,但它似乎不是我想要的因为,因为它也不起作用。

我想我可以做这样的事情:

<p-calendar [(ngModel)]="rangeDates" 
            selectionMode="range"
            [readonlyInput]="true"
            (onSelect)="onSelect()"></p-calendar>

private dateSelected() {
    if (this.rangeDates[0] !== null && this.rangeDates[1] !== null) {
    //really dont know how to do "close" right now.
    }
}
Run Code Online (Sandbox Code Playgroud)

bid*_*jee 7

以下对我有用:

<p-calendar [(ngModel)]="rangeDates" 
    selectionMode="range" #calendar
    [readonlyInput]="true"
    (onSelect)="onSelect()"></p-calendar>

@ViewChild('calendar', undefined) private calendar: any;
private onSelect(){
  if (this.rangeDates[1]) { // If second date is selected
    this.calendar.overlayVisible=false;
}
 }
Run Code Online (Sandbox Code Playgroud)

我知道现在回答你的问题已经很晚了,但仍然为像我这样试图找到答案的人回答了这个问题。