Как узнать, какое поле недопустимо при проверке нокаута?
У меня довольно большая нокаут-модель, и я хочу проверить все вложенные модели в ней:
self.errors = ko.validation.group(self, { deep: true });
Валидатор обнаружил ошибку:
> self.errors()
["This field is required."]
Я не знаю, какое поле моей огромной модели неверно. Как я могу это узнать?
1 ответ
Решение
Я думаю, вы должны искать что-то вроде этого
// Getting errors
var errors = ko.validation.group(this, {
deep: true,
observable: false
});
// New method: getting extended details
var details = errors.getDetails();
for (var i = 0; i < details.length; i++) {
var d = details[i];
/*
Every element contains the following fields:
"observable" - a reference to the target observable.
"error" - the error message.
"rule" - the name of the failed validation rule.
"data" - an object that contains extension data (provided via "extend" method) for every rule. E.g. "data.required == true".
*/
}
PS: вам нужно добавить несколько строк в ваш файл проверки, чтобы сделать getDetails()
работа, т. е. которая может отсутствовать в имеющемся у вас файле сценария проверки (проверить ссылку и проверить код)
Ссылка Вот и кредиты на вольпав мне помогли давно.
Просто если кто-то ищет working sample
проверьте здесь