Ich verwende Angular UI Bootstrap Datepicker Direktive in meinem Projekt. Ich habe diese spezifische Notwendigkeit, wie ich nur 5 Tage vom aktuellen Tag aktivieren muss. Im Falle eines Wochenendes muss ich sie deaktivieren und die verbleibenden Tage aktivieren. Wenn zB der aktuelle Tag am Freitag ist, muss ich fri, mon, tue, web, thurs aktivieren. Ich verwende die dateDisabled-Eigenschaft, um dies zu erreichen. Problem ist, dass alle vergangenen Monatstermine ebenfalls aktiviert werden. Ich denke auch, dass die Lösung, die ich gefunden habe, nicht elegant ist. Unten ist mein Markup und Code. Bitte hilf mir. Vielen Dank im Voraus.Angular UI Datepicker. Aktivieren Sie nur 5 Tage ab heute ohne Wochenenden
<input show-weeks="false" ng-click="vm.openDate()" name="quotedate" type="text" class="form-control" ng-model-options="{timezone:'UTC'}" uib-datepicker-popup="dd/MM/yyyy" ng-model="vm.quote.date" is-open="vm.quotedate.opened" datepicker-options="vm.dateOptions" required close-text="Close" readonly="true"/>
vm.dateOptions = {
dateDisabled: disabled,
minDate: today
};
function disabled(data) {
var date = data.date,
mode = data.mode;
if (today.getDay() === 0 || today.getDay() === 6) {
return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6 || date.getDate() > today.getDate() + 5);
}else if (today.getDay() === 1) {
return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6 || date.getDate() > today.getDate() + 4);
}else {
return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6 || date.getDate() > today.getDate() + 6);
}
}
Hallo Danke für die Antwort. Dadurch werden die Wochenenden deaktiviert, aber auch gezählt. Aus diesem Grund habe ich die Bedingungen der if else festgelegt. – logesh
Wenn Sie nur fünf Wochentage im Voraus möchten, warum sollten Sie dann nicht einfach die Wochenenden deaktivieren und sieben statt fünf Tage hinzufügen (oder sechs hinzufügen, wenn Sie insgesamt fünf verfügbare Tage haben möchten, einschließlich heute). Egal an welchem Tag, Sie können nur die nächsten fünf Wochentage auswählen. Ich habe das Beispiel entsprechend aktualisiert. –