1

私はノックアウト検証で少し遊んだことがありますが、検証から取得したエラーのリストですべてのビューモデルを監視できるように、ノックアウトを拡張することは可能でしょうか? 一般的に私は持っています

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 に答える