У меня есть форма поиска с несколькими полями. Если пользователь ничего не вводит в поле, он все равно будет отправлен на сервер со значением «null».
Однако в этой форме имеется около 25 дополнительных (расширенных) полей, и если пользователь ничего не вводит в нее, JSON не должен содержать это поле вообще.
Итак, мой вопрос: есть ли какой-то способ (шаблон, возможно), чтобы избежать этих 25 "if() else"? Каков наилучший способ создания этого финального JSON?
Спасибо!AngularJS форма. Дополнительные свойства в JSON
UPD: Спасибо, @RIYAJKHAN за ваш ответ! мне удалось решить самостоятельно, используя LoDash:
private compactObject(obj) {
let compactObj = this.removeEmptyProperties(_.cloneDeep(obj));
_.forEach(compactObj, (value, key) => {
if (_.isObject(value)) {
compactObj[key] = this.compactObject(this.removeEmptyProperties(compactObj[key]));
}
});
return this.removeEmptyProperties(compactObj);
};
private removeEmptyProperties(obj) {
let trimedObj = _.cloneDeep(obj);
_.forEach(trimedObj, (value, key) => {
if (!value || _.isEmpty(trimedObj[key])) {
delete trimedObj[key];
}
});
return trimedObj;
}
, что случилось с просто отправив их утратившими на сервер? – toskv