Отключить определенные даты в Angularjs выбора даты
Я хочу отключить определенные даты в окне выбора даты AngularJS
,
я использую AngularJS-bootstrap
CSS для компонентов.
Даты, которые я хочу отключить, будут динамически меняться в зависимости от выбора предыдущего значения в комбо.
я верю date-disabled="disabled(date, mode)"
должно работать, хотя и не уверен.
Как я могу это сделать?
2 ответа
Я предполагаю, что вы используете Datepicker
директива от Angular-UI. date-disabled
Атрибут позволяет отключить определенные даты (например, выходные). Посмотреть этот план http://plnkr.co/edit/gGAU0L?p=preview
Если вы хотите динамически отключить даты на основе выбора, вы можете использовать min
а также max
атрибуты и наблюдатели. См. http://plnkr.co/edit/W5pb1boMLOHZFnWkMU8o?p=preview
Рекомендации:
Обратите внимание, что на данный момент в более новой версии (начиная с 1.1.0) AngularUI Bootstrap вы должны использовать datepicker-options
атрибут, чтобы сделать отключение даты, а также такие вещи, как макс / мин дата.
в элементе управления HTML добавьте
datepicker-options="vm.dateOptions"
или же datepicker-options="dateOptions"
если вы не используете controller as
но $scope
непосредственно.
Затем в вашем контроллере определите объект dateOptions.
vm.dateOptions = {
maxDate: new Date(),
dateDisabled: myDisabledDates
};
function myDisabledDates(dateAndMode) {
return ( dateAndMode.mode === 'day' && ( dateAndMode.date.getDay() === 0 || dateAndMode.date.getDay() === 6 ) );
}
!!! Обратите внимание!!! подпись функции dateDisabled
изменилось. Ранее он принимает объект даты и строку режима. В более новой версии это обернутый объект, содержащий оба.