Отключить определенные даты в средстве выбора даты Angularjs

Я хочу отключить определенные даты в средстве выбора даты AngularJS.

Я использую AngularJS-bootstrap css для компонентов.

Даты, которые я хочу отключить, будут динамически меняться в зависимости от выбора предыдущего значения в комбо.

Я считаю, что date-disabled="disabled(date, mode)" должно работать, хотя и не уверен.

Как я могу это сделать?


person Mital Pritmani    schedule 03.04.2014    source источник
comment
Привет! нашли ли вы что-нибудь о динамическом отключении определенных дат (например, если у вас есть список действий, вы выбираете другое действие, а затем отключаете определенный день в календаре, потому что это действие в эти дни ничего не имеет)? благодарю вас!   -  person KeizerBridge    schedule 08.02.2016


Ответы (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/#/datepicker

person Farhan Khan    schedule 03.04.2014
comment
Могу ли я отключить только несколько дат на основе выбора? - person Silvio Troia; 04.05.2016

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

person LeOn - Han Li    schedule 12.09.2016