使用knockoutValidate结果扩展Knockout ViewModel

时间:2013-10-01 15:53:45

标签: knockout.js knockout-validation

我已经玩过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,以便我可以轻松地从每个单一视图模型中删除此属性,只使用继承的?

1 个答案:

答案 0 :(得分:2)

您可以使用击倒extend feature

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());

}

这是fiddle