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 apropriada

Até 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

questionAnswers(6)

yourAnswerToTheQuestion