Проверка нокаута - как показывать сообщения об ошибках

Мы используем Knockout.js и плагин проверки нокаута. Когда пользователь возвращается к странице с ошибками проверки, мы хотим, чтобы отображались сообщения об ошибках. Кто-нибудь знает, возможно ли инициировать проверку нокаута без фактического изменения связанного ответа?

Ответы

Ответ 1

Решение - вызвать showAllMessages. Если модель представления имеет вложенные наблюдаемые данные, обязательно установите ko.validation.configure для использования глубокой группировки, поскольку значение по умолчанию - false.

Пример:

viewModel.save = function()
{
    var result = ko.validation.group(viewModel, {deep: true});
    if (!viewModel.isValid()) 
    {
        alert("Please fix all errors before preceding");
        result.showAllMessages(true);

        return false;
    }

    //actually save stuff, call ajax, submit form, etc
}

В качестве альтернативы вы можете заменить !viewModel.isValid() на result().length > 0