Після налаштування валідації поля не завантажується дизайнер сторінки
Допоможіть, будь ласка, розібратись з валідаторам.
Прив'язав валідатор до поля типу ДатаЧас у сторінці створення запису. Сторінка відкривається, алідатор працює, але через частинку коду у блоці 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
}
Нравится
Проблема в "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.