0

次のメタデータが示すように、次のエンティティ プロパティが定義されています。

{"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);
};

私が何か間違ったことをしているのか、それとも単なるバグなのか知りたいですか?

ありがとう、リチャード

4

1 に答える 1

0

編集:これは Breeze v1.3.0 で修正され、現在利用可能です。


これはバグであり、今週後半にリリースされる次のリリースで修正される予定です。...そして、それを見つけて報告してくれてありがとう:)

于 2013-04-15T17:14:16.433 に答える