我的应用程序中有一个界面,用于维护我要发送到数据库的属性,以及我不会发送的属性。
具体来说,我维护了一个名为state
的属性,可以设置为open
或null
(已关闭),然后触发Angular2的动画state功能。我在*ngFor
列表中使用此功能打开关闭该项目的信息面板。
但是,我不想将状态值存储在我的数据库中,因为它始终默认为null
。目前,我将整个对象传递给http调用,因此state
属性也被发送。我怎么能忽略它?
pushItemToDay(item: any, dateStr: Date): void {
let body = JSON.stringify(item);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post(this.baseURL + 'api/addItem/' + dateStr, body, options)
.toPromise()
.catch(this.handleError);
}
答案 0 :(得分:4)
如果在帖子后使用该对象,则删除可能会造成损害。函数stringify具有一个额外的参数,可以忽略不需要的条目。
let source = {
'meal': 'burger',
'milkshake': 'chocolat',
'extra':'2 hot dogs',
'free': 'smile'
};
let ignoreList = [ 'meal', 'extra' ];
function replacer(key,value)
{
if (ignoreList.indexOf(key) > -1) return undefined;
else return value;
}
let data = JSON.stringify(source, replacer);
console.log(data);