2013-07-03 59 views
0

我正在預測哪裏需要在客戶端上使用自定義屬性驗證規則。我使用微風版本1.3.6。當我指定多個規則時,我遇到了以下問題。讓我們說,我有一個十進制字段minValue(最小值= 5)和maxValue(最大值= 10)自定義規則定義。當我寫入值11時,我打破了maxValue規則,entityAspect.getValidationErrors返回一個錯誤。當我刪除一個字符,所以現在的值是1我打破minValue規則。問題是entityAspect.getValidationErrors返回兩個錯誤。它說maxValue和minValue規則都被破壞了。 調試時我在breeze.debug.js版本1.3.6線3639來accros功能:微風客戶端驗證不會清除錯誤

// 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; 
}; 

從我可以計算出它應該去通過所有的驗證規則。問題是,它停止調用驗證它擊中違反規則後:

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

一旦「OK」是假的,因爲一個規則被打破了所有剩餘的規則不跑那麼即使不再打破了錯誤將不會被清除。我希望所有的驗證規則都能運行,以清除不再相關的錯誤。

回答

0

糟糕。這是一個錯誤。應該是ok = validate(...) && ok;我們會解決它。感謝您的查找和報告。