Javascript KO验证:未定义model.errors

Javascript KO验证:未定义model.errors,javascript,validation,knockout.js,Javascript,Validation,Knockout.js,我有这个型号 var MarketResearch = function (data) { var self = this; self.Validate = function() { if (!self.isValid()) { self.errors.showAllMessages(); return false; } return true; }; this.id

我有这个型号

var MarketResearch = function (data) {
    var self = this;
    self.Validate = function() {
        if (!self.isValid()) {
            self.errors.showAllMessages();
            return false;
        }
        return true;
    };
    this.id = data ? data.id : 0;
    this.city = ko.observable(data ? data.city : '').extend({ required: true });
    this.since = ko.observable(data ? data.since : '').extend({ required: true });
    this.title = ko.observable(data ? data.title : '').extend({ required: true });
}
以下是视图:

function onDocumentReady() {

    koValidationConfig()

    // initializeDataPickers(market);
    // createCkEditor('market_editor');
    ko.applyBindings(market, document.getElementById("market-form"));
}
var market = new MarketResearch(null);
    function onSaveMarketClicked() {
        market.errors.showAllMessages();
    }

function koValidationConfig() {
    ko.validation.rules.pattern.message = 'Invalid.';

    ko.validation.configure({
       // registerExtenders: true,
        messagesOnModified: true,
        insertMessages: true,

        decorateInputElement: true,

    });
    ko.validation.registerExtenders();
}
我这里有一些必填字段。当我在字段中不添加任何内容时,它会显示“thisfieldsrequired”,并为表单元素着色。 但是market.errors总是未定义的,所以我无法检查表单是否有效

market.errors.showAllMessages();
不太管用

确认已定义,我已检查


怎么了?

ko。验证将
错误
属性添加到可观察对象,而不是模型。您还需要在可观察对象上使用
.extend
,以启用验证。

您的代码中没有任何内容表明这一点。现在,在我浏览完文档后,我明白了。非常感谢你!我想(因为我的搭档告诉我的),默认情况下我可以这么做。但是现在我如何验证我的字段呢?如何使用showAllMessages()?我不再记得具体细节:)我个人的观点是
ko。验证
是一个写得很糟糕的插件。计算出的观测值更容易预测。创建验证组解决了我的问题!非常感谢。