我在我的项目中使用 Angular UI Bootstrap datepicker 指令。我有这个特定的需求,比如我只需要从当天开始启用 5 天。如果是周末,我需要禁用它们并启用剩余的日子。例如,如果今天是星期五,我需要启用 fri, mon, tue, web, thurs。我正在使用 dateDisabled 属性来实现这一点。问题是所有过去一个月的日期也都被启用了。另外我认为我提出的解决方案并不优雅。下面是我的标记和代码。请帮助我。先感谢您。
<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 );
}
}