Отключить определенные даты в 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


Рекомендации:

http://angular-ui.github.io/bootstrap/

Обратите внимание, что на данный момент в более новой версии (начиная с 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 изменилось. Ранее он принимает объект даты и строку режима. В более новой версии это обернутый объект, содержащий оба.

Другие вопросы по тегам