如何在angularjs bootstrap datepicker指令中禁用静音日期?
我需要禁用所有不是当前重点月份的日期。 尝试基于所选日期使用如何在angularjs bootstrap datepicker指令中禁用静音日期?,angularjs,angularjs-directive,angular-bootstrap,Angularjs,Angularjs Directive,Angular Bootstrap,我需要禁用所有不是当前重点月份的日期。 尝试基于所选日期使用datedisabled属性,但它将永远禁用日期。更改月份时,日期仍处于禁用状态 我想到了另一个解决方案:所有不是当前重点月份的日期都应用了“文本静音”类。尝试创建下面的指令,该指令检查类并禁用日期。但这根本不起作用。有人能看一下吗 HTML: <datepicker ng-model="dt" show-weeks="false" disable-muted-dates /> angular.module('ap
datedisabled
属性,但它将永远禁用日期。更改月份时,日期仍处于禁用状态
我想到了另一个解决方案:所有不是当前重点月份的日期都应用了“文本静音”类。尝试创建下面的指令,该指令检查类并禁用日期。但这根本不起作用。有人能看一下吗
HTML:
<datepicker ng-model="dt" show-weeks="false" disable-muted-dates />
angular.module('app', ['ui.bootstrap'])
.directive('disableMutedDates',[function () {
return {
link:function (scope,element) {
var datepicker = element;
var table = angular.element(datepicker.children()[0]);
var tbody = angular.element(table.children()[1]);
var trs = angular.element(tbody.children());
for (var i = trs.length - 1; i >= 0; i--) {
var tr = angular.element(trs[i]);
var tds = angular.element(tr.children());
for (var j = tds.length - 1; j >= 0; j--) {
var td = angular.element(tds[j]);
if (angular.element(td.children()[0]).prop('tagName') === 'BUTTON') {
var button = angular.element(td.children()[0]);
var span = angular.element(button.children()[0]);
if (span.hasClass('text-muted')) {
button.attr('disabled',true);
};
};
};
};
}
}
}])
笔:所需的目标是什么?所需的目标是禁用当前关注月份以外的所有日期。这与问题中的内容完全相同:)我的意思是,未选择月份的日期的默认行为是切换到它们所属的月份。你想用这种方式禁用月与月之间的切换吗?不,基里尔,我不想禁用月与月之间的切换。当月份更改时,我只希望“该”月份的日期可供选择。为了选择不同月份的日期,我想强制用户先更改月份。嗯。。。我在codepen上打开您的工作示例,它显示了一个已打开的选择器。如果在此视图中单击五月的任何日期,它将更改为五月,我可以选择五月的一个日期,如果单击七月日期(我看到其中11个),我将切换到七月,效果相同。发生了什么?