У меня было аналогичное требование в моем проекте, чтобы включить дни, предоставив массив объектов даты, я переопределил контроллер по умолчанию в моем проекте.
Это то, что я сделал
В «контроллере ('DatepickerController')» в модуле ('ui.bootstrap.datepicker') я добавил конфигурацию и метод
this.enabledDays = getValue($attrs.enabledDays, dtConfig.enabledDays);
this.toBeDisabled = function (date, mode) {
var currentMode = this.modes[mode || 0];
var flag = false;
for (var i = 0; i < this.enabledDays.length; i++) {
if (!currentMode.compare(date, this.enabledDays[i])) {
flag = true;
break;
}
}
return flag;
}
затем я изменил следующий предопределенный метод
this.isDisabled = function (date, mode) {
var currentMode = this.modes[mode || 0];
return ((this.enabledDays && !this.toBeDisabled(date, mode)) ||
(this.minDate && currentMode.compare(date, this.minDate) < 0) ||
(this.maxDate && currentMode.compare(date, this.maxDate) > 0) ||
($scope.dateDisabled && $scope.dateDisabled({date: date, mode: currentMode.name})));
};
И в функции ссылки по этой директиве directive('datepicker', ...
я добавил
var enabledDays = datepickerConfig.enabledDays;
if (attrs.enabledDays) {
scope.$parent.$watch($parse(attrs.enabledDays), function (value) {
enabledDays = value ? value : null;
datepickerCtrl.enabledDays = enabledDays;
refill();
});
}
А в функции "scope.move" внутри функции ссылки я добавил
if (typeof datepickerCtrl.onChange != "undefined") {
datepickerCtrl.onChange(selected);
}
как вы можете видеть ниже
scope.move = function (direction) {
var step = datepickerCtrl.modes[mode].step;
selected.setMonth(selected.getMonth() + direction * (step.months || 0));
selected.setFullYear(selected.getFullYear() + direction * (step.years || 0));
if (typeof datepickerCtrl.onChange != "undefined") {
datepickerCtrl.onChange(selected);
}
refill();
};
Теперь датапикер изменен
В разметке HTML
<datepicker enabled-days="enabledDays" datepickerConfig="datepickerOptions"></datepicker>
где "enabledDays" - это массив, который вы можете определить в области видимости.
Работал у меня пока без проблем
Надеюсь, это поможет вам :)
person
Vamsi
schedule
22.03.2014