2014-12-05 1 views
3

나는 오히려 큰 녹아웃 모델을 가지고 있고 그 안에 중첩 된 모든 모델을 확인하려면 :녹아웃 검증에서 어떤 필드가 유효하지 않은지 아는 방법은 무엇입니까?

self.errors = ko.validation.group(self, { deep: true }); 

검사기에 오류가 발견

> self.errors() 
["This field is required."] 

나도 몰라 내 큰 모델의 어느 분야 유효하지 않다. 어떻게 알 수 있습니까?

+0

가능 중복 된 경우 : http://stackoverflow.com/questions/18129392/how-to-tie-together-ko-validation-errors-with-related -viewmodel-field-names – Beej

답변

4

난 당신이

// Getting errors 
var errors = ko.validation.group(this, { 
    deep: true, 
    observable: false 
}); 

// New method: getting extended details 
var details = errors.getDetails(); 

for (var i = 0; i < details.length; i++) { 
    var d = details[i]; 

    /* 
     Every element contains the following fields: 

     "observable" - a reference to the target observable. 
     "error" - the error message. 
     "rule" - the name of the failed validation rule. 
     "data" - an object that contains extension data (provided via "extend" method) for every rule. E.g. "data.required == true". 
    */ 
} 

PS처럼 뭔가를 찾고해야한다 같아요 당신은 검증 스크립트 파일에 존재하지 않을 수 getDetails() 작업, 즉를 확인하기 위해 검증 파일에 몇 줄을 추가 할 필요가 당신 (참조 번호 & 체크 코드를 확인하십시오.)

참조 Here 그리고 volpav에 크레디트가 있으면 오랫동안 도움이되었습니다.

그냥 넣다 working sample 검사를 찾는 사람 here

+0

조언을 주셔서 감사합니다. 나는 volpav의 파일 버전을 사용하여 getDetails를 사용하려고 시도했지만 "validatables is not defined"라는 오류가 있습니다. – Neshta

+0

전체 js 코드를이 링크에 복사 했습니까? https://github.com/volpav/Knockout-Validation/blob/master/Src/knockout.validation.js –

+0

네,하지만 다른 오류가있었습니다. 나는 validatables() 대신 context.validatables를 사용하여 이전 js 오류로 문제를 해결했습니다. 세부 정보 객체의 정보는 유효하지 않은 다른 규칙을 말하면서 만 도움이됩니다. 그러나 어떻게 그것을 더 간단하게 찾을 수 있습니까? – Neshta

관련 문제