Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NgbDatepicker show months and years only

I am developing an app using Bootstrap 4 components, powered by Angular 4, and i have trouble configuring the NgbDatepicker directive to show only the months and years, not the days - like for credit cards.

I want to select only the month and year, i don't care about choosing a specific day.

My input looks like this:


<input id="demodate" type="text" name="demodate" ngbDatepicker
#startDateDp="ngbDatepicker" [(ngModel)]="modelDate"/>

I tried all the properties listed for the directive listed here

https://ng-bootstrap.github.io/#/components/datepicker

but none of them seem to help me. Any ideas?

like image 308
Noise A. Avatar asked May 30 '17 16:05

Noise A.


2 Answers

Well there is no native support for that, but you can help yourself with css and navigate event. It is not super-nice, but it is functional.

<ngb-datepicker (navigate)="dateNavigate($event)" [showWeekdays]="false" class="datepicker-only-month-select"></ngb-datepicker>

In your component you can catch the navigate event, which contains previous and new value:

dateNavigate($event: NgbDatepickerNavigateEvent) { console.log($event.next.month); console.log($event.next.year); ... // old value is contained in $event.current }

And finally in global scope CSS, you can hide the day calendar (and add more required styling):

.datepicker-only-month-select { border: 0 !important; .ngb-dp-months { display: none !important; } }

like image 153
Lukas Jelinek Avatar answered Nov 17 '22 07:11

Lukas Jelinek


There is a request for that:

https://github.com/ng-bootstrap/ng-bootstrap/issues/1811

As of now (Feb/2020), this is not supported yet.

like image 2
BrunoJCM Avatar answered Nov 17 '22 06:11

BrunoJCM