ExtJS:dateField - 如何禁用所有和启用一些动态数组日期

ExtJS: dateField - how to disable all and enable some dynamic array dates

如何禁用所有日历日期并从动态数组启用?

比如我有数组

['1.12.21', '25.11.21', '3.12.21', '8.10.21']

我应该禁用数组中除日期之外的所有日期 - 我该怎么做?

可以使用Ext.form.field.DatedisabledDates配置,setDisabledDates方法更新,见documentation。您在此处指定的数组将被解释为正则表达式,因此在您的情况下,您可以设置一个否定条件来禁用除某些日期之外的所有日期。

尝试下面的代码,也 this working fiddle。这适用于经典工具包,我不知道如何在现代工具包中做到这一点。

Ext.application({
    name: 'Fiddle',
    launch: function () {
        const enabledDatesArray = ['01.10.21', '06.10.21', '15.10.21'];
        const disabledDatesRegex = '^(?!'+enabledDatesArray.join('|')+').*$';
        Ext.create('Ext.panel.Panel', {
            width: 400,
            renderTo: Ext.getBody(),
            items: [{
                xtype: 'datepicker',
                format: 'd.m.y',
                disabledDates: [disabledDatesRegex]
            }]
        });
    }
});