次のメタデータが示すように、次のエンティティ プロパティが定義されています。
{"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()
メソッドの呼び出しで次の例外がスローされます。
「未定義または null 参照のプロパティ 'complexAspect' を取得できません」
website
エンティティ プロパティが null になる可能性があるため、この動作は期待できません。validateProperty
メソッドに null 参照処理のバグがあるようです。
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);
};
私が何か間違ったことをしているのか、それとも単なるバグなのか知りたいですか?
ありがとう、リチャード