Como unir erros de ko.validation com nomes de campos relacionados ao viewmodel
Estou usando o Knockout.Validation e gostaria de exibir um resumo de erro em que cada linha exibe a mensagem de erro (obviamente!) E também o nome do campo no modelo de exibição relacionado a ele, por exemplo.
Idade - por favor insira um númeroData de nascimento - por favor insira uma data apropriadaAté agora eu tenho um validatedObservable envolvendo meu modelo de visão, e isso coloca uma matriz de erros no meu viewmodel automaticamente, contendo todos os meus erros. No entanto, não consigo ver nenhuma maneira fácil de recuperar o campo ao qual cada erro está relacionado.
Eu sei que eu poderia atravessar o modelo de visão sozinho, construindo uma coleção de erros minha a partir da propriedade isValid - essa é a minha única opção?
Quando eu tiver o nome do campo, posso mapear meu resumo de validação para o rótulo "amigável" relacionado a esse campo (por exemplo, "Data de nascimento" e não "Data de nascimento").
Aqui está uma versão simplificada do código que tenho até agora:
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>
Muito Obrigado