Bhrungarajni
Bhrungarajni

Reputation: 2535

How to hide PrimeNG Calendar after date selection with showTime is true

I am facing issue with PrimeNG Calendar. I have searched lot but not find any clue and this question already asked in StackOverflow but not proper answer given.

When I select date after that calendar is not hide.

my html code:

<p-calendar [monthNavigator]="true" [yearNavigator]="true" yearRange="1910:2020" showButtonBar="true"  hideOnDateTimeSelect="true" showTime="true" dateFormat="mm-dd-yyyy"
              placeholder="mm-dd-yyyy"  [minDate]="yesterday" formControlName="Start"  class="pull-left">
            </p-calendar>

and just bind formControl Start with this calendar.

Please, help me to solve this issue.

Upvotes: 1

Views: 4055

Answers (1)

Hitesh Kansagara
Hitesh Kansagara

Reputation: 3526

you have to make below changes it will work for you,

in your component, import ViewChild from @angular/core and Calendar from primeng/primeng

@ViewChild('myStartCalendar') startCalendar: Calendar;

ngOnInit() {
    this.calendarOnDateSelectHandler = this.startCalendar.onDateSelect;
    this.startCalendar.onDateSelect = ((event: any, dateMeta: any) => { 
    this.onStartDateSelectExtention(event, dateMeta); });
 }

private onStartDateSelectExtention(event: any, dateMeta: any): void {
    this.calendarOnDateSelectHandler.call(this.startCalendar, event, dateMeta);
    if (this.startCalendar.isSingleSelection()) {
        this.startCalendar.overlayVisible = false;
    }
}

then put the myStartCalendar in your primeng calendar in html as like below code:

<p-calendar #myStartCalendar [monthNavigator]="true" [yearNavigator]="true" yearRange="1910:2020" showButtonBar="true"  hideOnDateTimeSelect="true" showTime="true" dateFormat="mm-dd-yyyy"
           placeholder="mm-dd-yyyy"  [minDate]="yesterday" formControlName="Start"  class="pull-left">
</p-calendar>

Upvotes: 2

Related Questions