我正在使用敲除验证插件并进行分组以生成错误数组。
self.errors = ko.validation.group(self);
我还有一个消息框对象
function messagebox(status, message) {
var self = this;
self.status = ko.observable(status);
self.message = ko.observable(message);
}
我在viewmodel中实例化,并在视图中成功呈现:
self.msgbox = new messagebox("information", "Enter some integers");
消息框在各个州更新以提供信息或警报。我希望它在验证失败或成功时更新。
e.g。
if (self.errors().length = 0) {
self.msgbox.status("success");
self.msgbox.message("Validation successful");
} else {
self.msgbox.status("error");
self.msgbox.message("+ or - integers required");
}
有人可以建议如何让上述工作吗?我需要计算的可观察量吗?
答案 0 :(得分:3)
如果您使用验证插件设置grouping: { observable: true }
(这是默认设置),则无需创建计算,那么ko.validation.group
将返回ko.computed
您可以subscribe
on:
self.errors.subscribe(function () {
if (self.errors().length == 0) {
self.msgbox.status("success");
self.msgbox.message("Validation successful");
} else {
self.msgbox.status("error");
self.msgbox.message("+ or - integers required");
}
});
演示JSFiddle。