Мы используем Knockout.js и плагин проверки Knockout. Когда пользователь возвращается на страницу с ошибками проверки, мы хотим, чтобы отображались сообщения об ошибках. Кто-нибудь знает, можно ли запустить проверку нокаута без фактического изменения связанного ответа?
Knockout Validation — Как показать сообщения об ошибках
Ответы (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
person
CBlack
schedule
24.08.2012
Обратите внимание, что validatedObservable вызывает группу за кулисами и сохраняет в свойстве ошибок, поэтому нет необходимости создавать собственную группу.
if (!viewModel.isValid()) { viewModel.errors.showAllMessages(); }
- person Gudlaugur Egilsson; 05.05.2013
Спасибо. Это было невероятно полезно.
- person Quickhorn; 03.12.2013
Как спрятать их обратно? Я заметил, что это сделало появление ошибок динамическим, т.е. показать/скрыть по мере проверки ошибок. Что, если я захочу вернуться к тому, чтобы показать их все сразу, скажем, одним нажатием кнопки, как в этом примере здесь. Спасибо
- person Swanidhi; 14.09.2016