मैं ऑब्जेक्ट्स की सरणी को सत्यापित करने के लिए knockout validation lib का उपयोग करने का प्रयास कर रहा हूं। यह मेरे लिए सरल नहीं है कि अवलोकनों की एक सरणी के लिए सत्यापन समूह कैसे बनाया जाए। एक ही रास्ता मैं यह काम कर करने में कामयाब रहे इस (JSFIDDLE included) की तरह है:किसी सरणी को कैसे सत्यापित करें?
var Note = function() {
var self = this;
self.name = ko.observable().extend({ required: true });
};
var viewModel = function() {
var self = this;
self.notes = ko.observableArray([new Note(), new Note()]);
self.validatedObservables = function() {
var arr = [];
ko.utils.arrayForEach(self.notes(), function(note) {
arr.push(note.name);
});
return arr;
};
self.errors = ko.validation.group(self.validatedObservables());
self.submit = function() {
if (self.errors().length != 0) {
self.errors.showAllMessages();
}
};
};
ko.applyBindings(new viewModel());
ऐसा लगता है मेरे दृष्टिकोण की तरह अनावश्यक रूप से अत्यधिक शब्द है। स्रोत कोड के अनुसार आप बस ko.validation.group के लिए एक नमूदार पारित कर सकते हैं:
self.errors = ko.validation.group(self.notes());
लेकिन यह काम नहीं करता।
ग्रेट, मैन, आप एक दिन बचाया! सिर्फ एक और चीज है। यह ठीक काम करता है, लेकिन यदि आप बाद में किसी सरणी में एक और उदाहरण जोड़ते हैं, तो यह समूह में शामिल नहीं है। [इस पहेली को देखें] (http://jsfiddle.net/KHFn8/340/) – Dziamid
मुझे नॉकआउट के बारे में क्या पसंद है यह है कि इसमें आपके रास्ते पर खड़ा जादू नहीं है। फिर, मैंने अपनी समस्या हल की। कोड वर्बोज़ है लेकिन काम करता है - डायनामिक रूप से जोड़े गए आइटम अब सत्यापन में जोड़े गए हैं। [फिडल] (http://jsfiddle.net/KHFn8/344/)। – Dziamid
-1: यह पहेली कोई सत्यापन नहीं करता है। –