禁用Angularjs日期选择器中的特定日期

时间:2014-04-03 12:27:28

标签: javascript angularjs angular-ui-bootstrap

我想在AngularJS的日期选择器中禁用特定日期。

我正在使用AngularJS-bootstrap css作为组件。

我要禁用的日期将根据组合中之前值的选择动态更改。

我相信date-disabled="disabled(date, mode)"应该有效,但不确定。

我该怎么做?

2 个答案:

答案 0 :(得分:16)

我假设你正在使用Angular-UI的Datepicker指令。 date-disabled属性允许您禁用某些日期(例如,周末)。请参阅此插件http://plnkr.co/edit/gGAU0L?p=preview

如果您想根据选择动态停用日期,可以使用minmax属性和观察者。见http://plnkr.co/edit/W5pb1boMLOHZFnWkMU8o?p=preview


参考文献:

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

答案 1 :(得分:6)

注意,截至目前,在AngularUI Bootstrap的较新版本(从1.1.0开始)中,您必须使用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的功能签名已更改。以前它接受日期对象和模式字符串。在较新的版本中,它是包含两者的包装对象。