将验证成功/错误消息绑定到错误数组

时间:2013-12-04 08:18:12

标签: knockout.js knockout-validation

我正在使用敲除验证插件并进行分组以生成错误数组。

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");
}

有人可以建议如何让上述工作吗?我需要计算的可观察量吗?

1 个答案:

答案 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