ValidationMessage抛出observable是无法验证的

Uma*_*air 1 knockout.js knockout-validation

我有一个viewmodel,它有一个可观察的,并且我在其上应用了一些验证.

现在,当我使用自定义validationMessage绑定时,为了显示错误,我在ko验证库中收到以下错误:

<script type="text/html" id="TEXTBOX_Template">
    <input type="text" data-bind="value: question().s_answer" />
    <span class="validationMessage" 
          data-bind="validationMessage: question().s_answer"></span>
</script>
Run Code Online (Sandbox Code Playgroud)

KO validationMessage错误

我正在使用ko和ko-validation的最新版本.

我的设置如下:

ko.validation.init({ decorateInputElement: false, 
                     messageTemplate: 'error_Template' });
ko.validation.makeBindingHandlerValidatable("selectedOptions");
Run Code Online (Sandbox Code Playgroud)

错误模板(但在此示例中不需要,因为我想使用validationMessage):

<script type="text/html" id="error_Template">
    <!-- ko if: (field.isModified() && !field.isValid()) -->
    <span class="validationMessage" data-bind="text: field.error"></span>
    <!-- /ko -->
</script>
Run Code Online (Sandbox Code Playgroud)

如果这与observable一起工作,那么它应该与observableArray一起工作,因为我有一个使用ko foreach的单选按钮列表,当有验证时,错误会显示在每个输入单选按钮之后.

任何建议都会有帮助!

谢谢

Uma*_*air 5

validationMessage绑定存在一些问题,因此我们需要将observable显式扩展为可验证.

在validationMessage绑定处理程序下的knockout.validation.js文件中添加以下行:

obsv.extend({ validatable: true });
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

希望这将在下一版本中修复,在ko.validation中添加了一个问题.或者至少这对我有用,如果我错了,请告诉我?或者,还有更好的方法?