我无法弄清楚如何让Knockout Validation plugin验证自定义的viewmodel属性选择。 然而,我可以调用isValid()
来成功验证整个视图模型。
我已经按照文档列出here来涵盖场景,并检查了我在堆栈溢出时可以找到的所有答案。
我的代码如下所示:
function MyViewModel() {
var self = this;
self.myproperty = ko.observableArray().extend({ minLength: { message: 'You must specify at least one item.'} })
self.anotherproperty = ko.observable().extend({ required: { params: true, message: 'You must supply a value.'} });
self.IsEntireModelValid = function() {
if (!self.isValid()) {
self.errors.showAllMessages();
return false;
}
else {
return true;
}
self.IsAnotherPropertyValidOnly = function() {
var errors = ko.validation.group(self.anotherproperty);
if (errors.length > 0) {
errors.showAllMessages();
return false;
}
else {
return true;
}
}
当我致电self.IsAnotherPropertyValidOnly()
时,错误变量不包含任何错误,但当我致电self.IsEntireModelValid()
时,我得到了正确的答案。
有人能指出我做错了吗?
答案 0 :(得分:1)
您需要使用errors().length
。
self.IsAnotherPropertyValidOnly = function() {
var errors = ko.validation.group(self.anotherproperty);
if (errors().length > 0) {
errors.showAllMessages();
return false;
}
else {
return true;
}
}