breeze客户端验证不会清除错误

breeze客户端验证不会清除错误,breeze,client-side-validation,Breeze,Client Side Validation,我正在处理一个需要在客户机上使用自定义属性验证规则的项目。我使用的是breeze版本1.3.6。当我指定多个规则时,我遇到了以下问题。假设我有一个定义了minValue(min value=5)和maxValue(max value=10)自定义规则的十进制字段。当我写入值11时,我破坏了maxValue规则,entityAspect.getValidationErrors返回一个错误。当我删除一个字符使其值现在为1时,我违反了最小值规则。问题是entityAspect.getValidatio

我正在处理一个需要在客户机上使用自定义属性验证规则的项目。我使用的是breeze版本1.3.6。当我指定多个规则时,我遇到了以下问题。假设我有一个定义了minValue(min value=5)和maxValue(max value=10)自定义规则的十进制字段。当我写入值11时,我破坏了maxValue规则,entityAspect.getValidationErrors返回一个错误。当我删除一个字符使其值现在为1时,我违反了最小值规则。问题是entityAspect.getValidationErrors返回两个错误。它说maxValue和minValue规则都被打破了。 调试时,我在breeze.debug.js版本1.3.6第3639行找到了一个函数:

// called from defaultInterceptor.
proto._validateProperty = function (value, context) {
    var ok = true;
    this._processValidationOpAndPublish(function (that) {
        context.property.validators.forEach(function (validator) {
            ok = ok && validate(that, validator, value, context);
        });
    });
    return ok;
};
根据我的计算,它应该经过所有的验证规则。问题是它在遇到违反以下规则的规则后停止调用validate:

ok = ok && validate(that, validator, value, context);

一旦“ok”为false,因为一条规则被破坏,所有剩余的规则都不会运行,因此即使这些规则不再被破坏,错误也不会被清除。我希望运行所有验证规则来清除不再相关的错误。

Oops。这是一个错误。应该是
ok=validate(…)&&ok我们将修复它。感谢您的发现和报告