嗨我需要創建一個自定義驗證程序,將使用基因敲除驗證插件的可觀察數組的每個元素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上完成,並將用於問題對象的備忘錄值。
閱讀該文檔的驗證插件,我發現我怎麼會擴展簡單觀察的.Witch似乎做這樣的事:
ko.validation.rules['mustEqual'] = {
validator: function (val, otherVal) {
return val === otherVal;
},
message: 'The field must equal {0}'
};
但我不認爲這會爲結構工作我的viwmodel.How我可以爲我的observableArrays中的每個observable創建驗證器?
您問題中的示例對象在語法上不是有效的。請張貼實際的代碼。讓你的開發夥伴*猜測*你正在使用的東西是非常適得其反的。 – Tomalak