Как связать ошибки ko.validation с соответствующими именами полей viewmodel
Я использую Knockout.Validation и хотел бы иметь возможность отображать сводку ошибок, где каждая строка отображает сообщение об ошибке (очевидно!), А также имя поля в модели представления, связанной с ним, например,
Возраст - пожалуйста, введите номерДата рождения - пожалуйста, введите правильную датуДо сих пор у меня есть validatedObservable, обертывающий мою модель представления, и это автоматически помещает массив ошибок в мою модель представления, содержащий все мои ошибки. Однако я не вижу простого способа узнать, к какому полю относится каждая ошибка.
Я знаю, что мог бы самостоятельно пройти модель представления, создав собственную коллекцию ошибок из свойства isValid - хотя это единственный вариант?
Когда у меня есть имя поля, я могу сопоставить свою сводку проверки с соответствующей «дружественной» меткой для этого поля (например, «Дата рождения», а не «DateOfBirth»).
Вот упрощенная версия кода, который у меня есть:
ViewModel
function PersonModel(){
var self = this;
self.Age = ko.observable().extend({ number: true});
self.DateOfBirth = ko.observable({ date: true});
self.Validate = function() {
if (!self.isValid()) {
self.errors.showAllMessages();
return false;
}
return true;
};
ko.validation.init({
grouping: { deep: true, observable: true },
registerExtenders: true,
messagesOnModified: true,
insertMessages: true
});
ko.applyBindings(ko.validatedObservable(new PersonModel()));
Html
<ul data-bind='foreach: model().errors' class="message">
<li>
<span data-bind='text: $data'></span>
</li>
</ul>
Большое спасибо