这是一个完整的长镜头。我在过去 2 小时内遇到了同样的错误,非常困惑。我最终调试到了breath.debug.js,发现我试图保存的日期无效。一旦我更正了日期问题(将所有内容都转换为 UTC),应该为空:[] 消息就消失了。无论如何,我可以在第 3604 行看到在 Breeze 中的 validateTarget 方法中失败的实际验证,实际检查是在第 3615 行执行的。
不确定这是否会对您有所帮助,但由于我刚刚看到同样的错误,我认为分享我的经验会很痛苦。
仅供参考,这里是我调试的验证方法以获取更多信息。
function validateTarget(target) {
var ok = true;
var stype = target.entityType || target.complexType;
var aspect = target.entityAspect || target.complexAspect;
var entityAspect = target.entityAspect || target.complexAspect.entityAspect;
stype.getProperties().forEach(function (p) {
var value = target.getProperty(p.name);
var propName = aspect.propertyPath ? aspect.propertyPath + "." + p.name : p.name;
if (p.validators.length > 0) {
var context = { entity: entityAspect.entity, property: p, propertyName: propName };
ok = entityAspect._validateProperty(value, context) && ok; //This is where I put my break point to see what was actually failing.
}
if (p.isComplexProperty) {
ok = validateTarget(value) && ok;
}
});