Как узнать, какое поле недопустимо при проверке нокаута?

У меня довольно большая нокаут-модель, и я хочу проверить все вложенные модели в ней:

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 проверьте здесь

Другие вопросы по тегам