无法配置淘汰验证

Ada*_*kis 4 javascript knockout.js knockout-validation

我正在尝试配置淘汰赛验证,但我的设置似乎被忽略了.这就是我试图配置它的方式

var knockoutValidationSettings = {
    insertMessages: true,
    decorateElement: true,
    errorMessageClass: 'error',
    errorElementClass: 'error',
    errorClass: 'error',
    errorsAsTitle: true,
    parseInputAttributes: false,
    messagesOnModified: true,
    decorateElementOnModified: true,
    decorateInputElement: true
};
ko.validation.init(knockoutValidationSettings);

ko.applyBindings(vm, $('#dropzone')[0]);
Run Code Online (Sandbox Code Playgroud)

我知道选项对象不是问题,因为这很好用

var knockoutValidationSettings = {
    insertMessages: true,
    decorateElement: true,
    errorMessageClass: 'error',
    errorElementClass: 'error',
    errorClass: 'error',
    errorsAsTitle: true,
    parseInputAttributes: false,
    messagesOnModified: true,
    decorateElementOnModified: true,
    decorateInputElement: true
};
//ko.validation.init(knockoutValidationSettings);

ko.applyBindingsWithValidation(vm, $('#dropzone')[0], knockoutValidationSettings);
Run Code Online (Sandbox Code Playgroud)

如何让init函数工作?显然,我想把这个初始化移到我应用程序根目录的一个地方.

nem*_*esv 14

似乎验证插件已经在您调用时初始化ko.validation.init.

所以你需要传入true第二个参数来强制初始化使用新的配置:

ko.validation.init(knockoutValidationSettings, true);
Run Code Online (Sandbox Code Playgroud)

什么可以初始化验证插件?

  • 任何电话ko.applyBindingsko.applyBindingsWithValidation
  • 任何电话ko.validation.initko.validation.configure

ko.applyBindingsWithValidation版本有效,因为它更新了配置 - 在封面下 - 即使插件已经初始化.