1

我玩过 Knockout 验证,现在我想知道是否可以扩展 Knockout,以便每个视图模型都可以观察到我从验证中获得的错误列表?一般来说我有

self.validationData = {
            name: ko.observable('').validateUpperEmail(),
            childName: ko.observable('').validateOther(),
            errorList: ko.observableArray([])
        };

var errors = ko.validation.group(self.validationData);

var showErrorMessages = function () {
            errors.showAllMessages(true);

            linqjs.from(errors()).distinct('$._latestValue').forEach(function(errorMessage) {
                self.validationData.errorList.push({ text: errorMessage() });
            });

        };

问题是:有没有办法从其他地方填充 errorList 以便我可以轻松地从每个视图模型中删除此属性并仅使用继承的?

4

1 回答 1

2

您可以使用淘汰赛扩展功能

var baseModel = function() {
    var self = this;

    self.errorList = ko.observable('This is an example');
}

var childModel = function() { 
    var self = this;
    self.name = ko.observable('Test1');
    self.childName = ko.observable('');
    ko.utils.extend(self, new baseModel());

}

这是小提琴

于 2013-10-01T18:11:53.317 回答