knockout validation libを使用してオブジェクトの配列を検証しようとしています。観察可能な配列の配列に対してどのように検証グループを形成するかは、私には直接的ではありません。私のアプローチは、不必要に冗長であるように思えアレイの検証方法は?
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());
:私はそれを動作させるために管理する唯一の方法は、この(JSFIDDLE included)のようなものです。ソースコードによると、あなたは、単にko.validation.groupする、観察を渡すことができます。
self.errors = ko.validation.group(self.notes());
しかし、これは動作しません。
偉大な、男、あなたは一日に保存!もう一つだけあります。それは正常に動作しますが、後で配列に別のインスタンスを追加すると、グループには含まれません。 [このフィドルを見てください](http://jsfiddle.net/KHFn8/340/) – Dziamid
ノックアウトについて私が好きなのは、あなたの道に立つ魔法がないということです。再び、私は私の問題を解決しました。コードは冗長ですが動作します - 動的に追加された項目がバリデーションに追加されました。 [フィドル](http://jsfiddle.net/KHFn8/344/)。 – Dziamid
-1:このフィドルは検証を行いません。 –