Возможный дубликат:
javascript test для существования ключа вложенных объектов
Я пытаюсь создать сообщение об ошибке для formset
путем тестирования, если определенный объект не является undefined
, а если он не undefined
, я в конечном итоге заполняю его этим сообщением об ошибке. Основная проблема заключается в том, что я должен проверять, есть ли каждый вложенный объект undefined
, что приводит к некоторому довольно уродливому коду. Вот пример:
errorsForField: function(fieldName, formsetName, formNumber) {
if (typeof this.model.errors != 'undefined'){
var fieldError = document.createElement('span');
$(fieldError).addClass('field-error');
// THE FOLLOWING LINE THROWS ERROR.
if (formsetName && _.isUndefined(this.model.errors[formsetName][fieldName]) != true) {
$(fieldError).text(this.model.errors[formsetname][fieldName]);
} else if (typeof this.model.errors[fieldName] != "undefined"){
$(fieldError).text(this.model.errors[fieldName]);
}
this.errors[fieldName] = fieldError.outerHTML;
return fieldError.outerHTML;
}
return false;
},
Я получаю сообщение об ошибке, что я не могу определить [fieldName]
для undefined object
this.model.errors[formsetName]
. Другими словами, я должен сначала определить, является ли this.model.errors[formsetName]
пустым, а затем проверить, является ли [fieldName]
undefined
.
Это похоже на действительно громоздкое решение. Любые предложения по изменению этого?