1
私はいくつかのフィールドを持つ検索フォームを持っています。ユーザーがフィールドに何も入力しない場合でも、値は "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