我有2个日期选择器。一个是入住日期。另一个是结账日期。我正在使用Jquery,因为我以不同的方式使用它来移动,否则我会使用bootstrap datepicker,因为它已经提供了这个功能,我不需要自己编写代码。
我在做什么: 我在AngularJS中使用它,并且我在指令中初始化了datepicker。选中签入字段后,将打开结帐字段,以便用户选择结帐日期。 minDate(或签入日期)td一直到结帐日期tds被突出显示,因此它看起来像一个日期范围选择器,而不是真正的日期范围选择器。这使用户能够更改其中一个日期而无需更改另一个日期。如果那有意义的话。如果没有,我可以详细说明。
问题/疑问: 这可能是也可能不是愚蠢的问题,但如何在checkin datepicker上显示结帐日期?不使用日期范围选择器?基本上,我需要将一个类定位或添加到datepicker上的日期,该日期不是minDate或maxDate,并且尚未被选中。
这可以在beforeShowDay之前完成吗?
提前感谢您的帮助。
答案 0 :(得分:2)
感谢@Bindrid指出我正确的方向。对于那些可能想看我做了什么的人,你走了。
内角指令:
function showCheckout () {
var coFormated = new Date(scope.co);
if (date.getTime() === coFormated.getTime()) {
console.log(date);
console.log(coFormated);
return [true, "ui-state-highlight"];
} else {
return [true, '', ''];
}
}
function startDatepicker () {
element.datepicker({
minDate: 0,
numberOfMonths: numMonths,
showOtherMonths: true,
gotoCurrent: true,
beforeShowDay: function(date) {
var coFormated = new Date(scope.co);
if (date.getTime() === coFormated.getTime()) {
return [true, "highlight_end"];
} else {
return [true, '', ''];
}
},
onSelect: function (date) {
scope.$apply(function () {
ngModel.$setViewValue(new Date(date));
});
}
});
}
scope.$watch('co', (function (newValue) {
startDatepicker();
if (scope.ci) {
$('.ci').datepicker("setDate", scope.ci );
}
}), true);