Після налаштування валідації поля не завантажується дизайнер сторінки

Допоможіть, будь ласка, розібратись з валідаторам.

Прив'язав валідатор до поля типу ДатаЧас у сторінці створення запису. Сторінка відкривається, алідатор працює,  але через частинку коду у блоці viewModelConfigDiff не відкривається дизайнер цієї сторінки (Якщо цю частину закоментувати - відкривається). Використаний код додаю. 



У блоці стоінки viewModelConfigDiff прив'язав валідатор до поля



"DateTimeAttribute_qc2mfzm": {

                        "modelConfig": {

                            "path": "UsrAppNewTasksDS.UsrDateDeadline"

                        },

                        

                        

                        "validators": {

                                   "MyDateValidator": {

                                        "type": "usr.UniversalDateValidator",

                                            "params": {

                                                        "minValue": new Date(new Date().getTime() + (3 * 60 * 60 * 1000)), 

                                                        "message": "Термін виконання завдання не може бути меншим ніж 3 години."

                                                    }

                                                        }

                                            }            

            

                        

                    },





В блоці validators: 



"usr.UniversalDateValidator": {

        validator: function (config) {

        return function (control) {

            let minValue = new Date(config.minValue);

            let controlDate = new Date(control.value);

            let isDateValid = controlDate >= minValue;

            var result;

            if (isDateValid) {

                result = null;

            } else {

                result = {

                    "usr.UniversalDateValidator": { 

                        message: config.message || "Введена дата не відповідає умовам"

                    }

                };

            }

            return result;

        };

    },

    params: [

        {

            name: "minValue"

        },

        {

            name: "message"

        }

    ],

    async: false

}

            

               

Нравится

2 комментария
Лучший ответ

Проблема в "minValue": new Date(new Date().getTime() + (3 * 60 * 60 * 1000)), в параметрах валідатора в атрибуті. Якщо його прописати текстом (наприклад "2023-12-10"), то дизайнер відкривається. Перенесіть, будь ласка, цю перевірку в середину логіки валідатора (там де if (isDateValid) {), а не передавайте в config.

Добрий день,

 

Яка помилка виникає при спробі відкрити дизайнер (в консолі)? Ви робили відладку помилки?

Проблема в "minValue": new Date(new Date().getTime() + (3 * 60 * 60 * 1000)), в параметрах валідатора в атрибуті. Якщо його прописати текстом (наприклад "2023-12-10"), то дизайнер відкривається. Перенесіть, будь ласка, цю перевірку в середину логіки валідатора (там де if (isDateValid) {), а не передавайте в config.

Показать все комментарии