2016-12-24 6 views
1

Ich versuche, ionic 2 datepicker zu verwenden, es funktioniert, aber wenn ich min & max Eigenschaften verwenden will, funktioniert es nicht.Ionic datepicker min & max funktioniert nicht auf Monat & Tag

<ion-datetime displayFormat="DD-MM-YYYY" [min]="event.date.today" [(ngModel)]="event.date.start"></ion-datetime> 

Es Filterdatum nur auf Jahre! Aber ich hätte gerne Tag und Monat.

'date': { 
    'today': moment().format("YYYY-MM-DD") 

enter image description here

Können Sie mir helfen? Vielen Dank

Antwort

1

Soweit ich von ihrer Quelle sehen, unterstützt Ion-Datetime nur Jahr. (https://github.com/driftyco/ionic/blob/master/src/components/datetime/datetime.ts) Da die Spalten basierend auf dem Wert nicht dynamisch geändert werden. Eher Picker wird aus dem Min/Max erzeugt.

Ich schlage vor, Sie ändern Ihre Datetime Spalten manuell, um die volle Kontrolle zu haben.

Markieren Sie Ihre HTML-Datetime

<ion-datetime displayFormat="DD-MM-YYYY" #dateTime [(ngModel)]="event.date.start"></ion-datetime> 

Am Set der viewchild seine Spalten ändern

@ViewChild('dateTime') public set dateTime(val: DateTime) { 
    (<any>val.pickerOptions).columns[0].options = (<any>val.pickerOptions).columns[0].options.filter(year => year.value >= this.event.date.today.getFullYear()); 
    (<any>val.pickerOptions).columns[1].options = (<any>val.pickerOptions).columns[1].options.filter(month => month.value >= this.event.date.today.getMonth() + 1); 
    (<any>val.pickerOptions).columns[2].options = (<any>val.pickerOptions).columns[2].options.filter(day => day.value >= this.event.date.today.getDate()); 
} 
haben

Dies wird Ihnen ein Datetime, die nur die Jahre haben/Monat/Tag über oder gleich wie angegeben. Das bedeutet, wenn Sie 06/06/2016 als Minimum eingeben, dann 01/07/201

Wenn dies Sie nicht zufrieden stellend ist, sollten Sie nach einer Kalenderkomponente suchen, die für diese Aufgabe nützlicher wäre.

+0

Vielen Dank für Ihre Antwort. Ich verwende jetzt den nativen Datapicker, es funktioniert gut, aber ich muss auf Simulator oder Gerät debuggen. Danke! – ValSouche