Есть объект в data():
data: function() {
return {
car: {
model:null,
year:null,
power:null,
number:null,
doc: {
type: null,
number: null,
date:null,
},
card: {
item: null,
date: null,
},
card_our: false,
vin: '',
body_number: '',
chassis_number:''
},
}
}
Есть метод, который прогоняет ключи нужного объекта и если какой-то из них равен пустому значению или null, не дает приступить к следующему шагу заполнения формы.
validateObject: function(obj,exclude = null) {
obj = Object.assign({}, obj);
for (let key in obj) {
if (exclude && exclude.includes(key)) continue;
if (obj[key] == null || obj[key] == '') return false;
}
return true;
},
Что он делает:
1. Преобразовывает observer объект vue в обычный объект.
2. В exclude передается массив ключей, исключаемых из проверки.
3. По мере заполнения данных из формы, проверяет эти данные. Если каких-то нужных данных нет, возвращается false и к следующему шагу перейти нельзя.
Какие проблемы возникают:
Сейчас не удается проверять ключи, значением которых является объект, так как он уже является объектом observer, который снова надо преобразовать.
Можно, конечно, сделать проверку typeof, и если это объект - делать преобразование и проходиться еще по нему, но что если вложенность будет большая?
Я плохо представляю уже проход внутрь объекта по нескольким уровням (но в моей задаче их максимум 2), как это можно сделать? Нужно преобразовать сам вложенный объект и проверить еще ключи и у него. Получается нескончаемая пелена циклов в цикле?