Можно ли отображать выбранные праздники в угловом материале datepicker. https://material.angularjs.org/latest/demo/datepicker.
Это можно сделать в jquery date-picker легко. MVC Datepicker для праздников и выходных
Пожалуйста, дайте мне знать, это можно сделать, используя угловой материал (md-datepicker)
var holidays_dates = ["11-25-2015", "11-27-2015", "11-29-2015","10-9-2015"];
Вы можете украсить директиву mdCalendarMonthBody, которая является директивой, которая создает ячейки в таблице datepicker.
В этом примере я заменил функцию buildDateCell своей собственной функцией. Первое, что требуется в новой функции, я вызываю старую функцию для создания ячейки, а затем добавляю класс в ячейку, если дата праздника.
require('angular-material');
angular.module('myApp', [])
.config([ '$provide', function($provide) {
$provide.decorator('mdCalendarMonthBodyDirective', function($delegate) {
var originalDirective = $delegate[0];
var oldBuildDateCell = originalDirective.controller.prototype.buildDateCell;
originalDirective.controller.prototype.buildDateCell = function(opt_date) {
var cell = oldBuildDateCell.apply(this, [opt_date]);
var holidays = [{'holidayType':'holiday_type_newyear','date':'2015-12-31T23:00:00.000Z'},{'holidayType':'holiday_type_prayer_day','date':'2016-04-21T22:00:00.000Z'},{'holidayType':'holiday_type_easter_monday','date':'2016-03-27T22:00:00.000Z'},{'holidayType':'holiday_type_pentecost_day','date':'2016-05-14T22:00:00.000Z'},{'holidayType':'holiday_type_good_friday','date':'2016-03-24T23:00:00.000Z'},{'holidayType':'holiday_type_christmas_day','date':'2016-12-24T23:00:00.000Z'},{'holidayType':'holiday_type_boxing_day','date':'2016-12-25T23:00:00.000Z'},{'holidayType':'holiday_type_maundy_thursday','date':'2016-03-23T23:00:00.000Z'},{'holidayType':'holiday_type_ascension_day','date':'2016-05-04T22:00:00.000Z'},{'holidayType':'holiday_type_whit_monday','date':'2016-05-15T22:00:00.000Z'},{'holidayType':'holiday_type_palm_sunday','date':'2016-03-19T23:00:00.000Z'},{'holidayType':'holiday_type_easter_day','date':'2016-03-26T23:00:00.000Z'}];
if (opt_date) {
for (var i=0; i<holidays.length; i++) {
if (this.dateUtil.isSameDay(opt_date, new Date(holidays[i].date))) {
cell.classList.add('datepicker-holiday');
}
}
}
return cell;
};
return $delegate;
});
}]);
Затем все, что осталось, создает стиль календаря в календарях.
.datepicker-holiday .md-calendar-date-selection-indicator {
background-color: #00C853;
}