ノックアウト検証ライブラリを使用して、オブジェクトの配列を検証しようとしています。オブザーバブルの配列に対して検証グループを形成する方法は、私には簡単ではありません。私がなんとかそれを機能させる唯一の方法は、次のようなものです( JSFIDDLE が含まれています):
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());
私のアプローチは不必要に冗長なようです。ソース コードによると、observable を ko.validation.group に渡すだけです。
self.errors = ko.validation.group(self.notes());
しかし、これはうまくいきません。