Breeze выдает исключение ссылки Null при вызове метода EntityAspect.validateProperty()

У меня есть следующее свойство объекта, определенное как следующие метаданные:

{"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" неопределенной или нулевой ссылки"

Я бы не ожидал такого поведения, поскольку возможно, что свойство объекта website может быть нулевым. Похоже, в методе 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);
};

Просто интересно, я что-то не так делаю, или это просто баг?

Спасибо, Ричард


person RWHepburn    schedule 13.04.2013    source источник


Ответы (1)


Изменить: это было исправлено в версии Breeze 1.3.0, доступной сейчас.


Это ошибка, и она будет исправлена ​​в следующем выпуске, который выйдет позже на этой неделе. ... и спасибо за обнаружение и сообщение об этом :)

person Jay Traband    schedule 15.04.2013
comment
Отлично, буду ждать следующего исправления. - person RWHepburn; 16.04.2013