안녕하세요, 녹아웃 유효성 검사 플러그인을 사용하여 관찰 가능한 배열의 각 요소에 대해 aplyed 될 사용자 지정 유효성 검사기를 만들어야합니다. 나는 서버에 게시 할 때 내 개체의 구조는 다음과 같이 보일 것입니다 :녹아웃 유효성 검사 다중 레벨 깊은 관찰 가능 배열
var viewModel = {
evaluationFormDataContract: {
studentAssignmentInstanceId: value,
evaluationType: value,
categories: array[
CategoriesOnEvaluationDataContract1 = {
memo: value,
categoryId: value,
title: value,
// Fields needed for validation
hasMemo: value,
memoIsMandatory: value
questions: array[
QuestionsOnEvalCategoryDataContract1 = {
memo: value,
grade: value,
hasGrade: value,
hasMemo: value,
showOnlyMemo: value
},
QuestionsOnEvalCategoryDataContract2 = {
memo: value,
grade: value,
hasGrade: value,
hasMemo: value,
showOnlyMemo: value
}]
},
CategoriesOnEvaluationDataContract2 = {
memo: value,
categoryId: value,
title: value,
// Fields needed for validation
hasMemo: value,
memoIsMandatory: value
questions: array[
QuestionsOnEvalCategoryDataContract1 = {
memo: value,
grade: value,
hasGrade: value,
hasMemo: value,
showOnlyMemo: value
},
QuestionsOnEvalCategoryDataContract2 = {
memo: value,
grade: value,
hasGrade: value,
hasMemo: value,
showOnlyMemo: value
},
QuestionsOnEvalCategoryDataContract3 = {
memo: value,
grade: value,
hasGrade: value,
hasMemo: value,
showOnlyMemo: value
}]
}, ]
}
}
이제 검증은 두 개의 중첩 배열에만 applyed되어야 할 것이다 및 수행을 기준으로합니다 일부 속성.
범주 배열의 각 개체에 대해 첫 번째 유효성 검사를 수행해야하며 hasMemo 및 memoIsMandatory가 있는지 확인합니다.이 경우 메모가 필요합니다.
두 번째 유효성 검사는 각 질문 개체 개체에 대해 수행되며 해당 사례의 경우 hasGrade가 필요한지 확인합니다.
마지막 유효성 검사는 hasMemo 및 showOnlyMemo에서 수행되며 질문 객체의 메모 값으로 사용됩니다.
ko.validation.rules['mustEqual'] = {
validator: function (val, otherVal) {
return val === otherVal;
},
message: 'The field must equal {0}'
};
하지만이 구조를 위해 작동합니다 생각하지 않는다 : 나는 그것을 이런 식으로 뭔가를 할 것으로 보인다 간단한 관찰 .Witch을 연장 할 방법을 찾을 검증 플러그인의 설명서를 읽기
내 관찰 모델에있는 각 관측 대상에 대한 유효성 검사기를 어떻게 만들 수 있습니까?
질문의 샘플 객체는 구문 적으로 유효하지 않습니다. 실제 코드를 게시하십시오. 동료 개발자를 추측하기 * 노력하고있는 것은 비생산적인 것입니다. – Tomalak