Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在angularjs bootstrap datepicker指令中禁用静音日期?_Angularjs_Angularjs Directive_Angular Bootstrap - Fatal编程技术网

如何在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个),我将切换到七月,效果相同。发生了什么?