我将以下实体属性定义为以下元数据:
{"name":"website","dataType":"String",
"validators":[
{"name":"string"},
{"messageTemplate":"'%displayName%' is not valid",
"pattern":"^$|(^http|^https)://[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(/S*)?",
"name":"regExValidator"}]}
当我尝试调用entityAspect.validateProperty("website")
并且website
属性的值为null时,对validateProperty()
方法的调用会引发以下异常:
“无法获取未定义的属性'complexAspect'或null 参考“
我不希望这种行为,因为website
实体属性可能为null。看起来validateProperty
方法中可能存在空引用处理错误:
在 Breeze.debug.js :
proto.validateProperty = function (property, context) {
var value = this.getPropertyValue(property); // performs validations
if (value.complexAspect) { // THROWS EXCEPTION IF 'value' IS NULL
return validateTarget(value);
}
context = context || {};
context.entity = this.entity;
if (typeof(property) === 'string') {
context.property = this.entity.entityType.getProperty(property, true);
context.propertyName = property;
} else {
context.property = property;
context.propertyName = property.name;
}
return this._validateProperty(value, context);
};
只是好奇我是否做错了,或者这只是一个错误?
谢谢, 理查德
答案 0 :(得分:0)
修改:这已在Breeze v1.3.0中修复,现已上市。
这是一个错误,将在本周晚些时候的下一个版本中修复。 ......以及寻找和报告它的方法:)