我正在尝试使用淘汰赛验证库来验证对象数组。对我来说,如何为一组可观察对象形成一个验证组并不简单。我设法使它工作的唯一方法是这样的(包括 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());
但这不起作用。