Marcar campos não válidos como vermelhos com nocaute / durandal
Eu estou aprendendo nocaute, Durandal e Breeze e graças aoVídeo do JumpStart SPA de John Papa isso é um prazer. Então eu examino o código deste projeto e agora estou tentando mudar o mecanismo de validação.
Neste momento, ao salvar as alterações, se o salvamento falhar, coletamos os erros e exibimos um brinde com um resumo dos erros.
O que eu gostaria de alcançar é:
ter a capacidade de marcar campos não válidos em vermelho (cor de fundo) na exibição
quando um brinde é exibido com o retorno dos erros de validação (algo como: 'Salvar falhou: affairNr é necessário') Eu gostaria de substituir o nome da propriedade por um nome mais amigável (algo como 'Salvar com falha: número de assunto é necessário')
Aqui está o código da parte para a validação no datacontext.js:
var saveChanges = function () {
return manager.saveChanges()
.then(saveSucceeded)
.fail(saveFailed);
function saveSucceeded(saveResult) {
log('Saved data successfully', saveResult, true);
}
function saveFailed(error) {
var msg = 'Save failed: ' + getErrorMessages(error);
logError(msg, error);
error.message = msg;
throw error;
}
};
function getErrorMessages(error) {
var msg = error.message;
if (msg.match(/validation error/i)) {
return getValidationMessages(error);
}
return msg;
}
function getValidationMessages(error) {
try {
//foreach entity with a validation error
return error.entitiesWithErrors.map(function (entity) {
// get each validation error
return entity.entityAspect.getValidationErrors().map(function (valError) {
// return the error message from the validation
return valError.errorMessage;
}).join('; <br/>');
}).join('; <br/>');
}
catch (e) { }
return 'validation error';
}
Alguém pode me apontar na direção certa?
Desde já, obrigado.
EDITAR:
Para reproduzir o problema: clique na barra lateral esquerda em Transports + recherche avancee + qualquer item na lista + no lado direito: limpe algumas entradas (como o Numero d'affaire como imagem abaixo) e clique em 'Enregistrer'. Então o botão salvar é chamado. Lá eu preciso verificar se há entradas inválidas com ko.validation.group, mas não funciona.