繁体   English   中英

Angular2如何在POST中隐藏空数组

[英]Angular2 how to hide empty array in POST

在我的过滤器中,我有产品列表。 当有一些元素时,我只想发送这个数组。 可能吗?

请求功能:

getRecipes(page, pageSize, filters){
let body = JSON.stringify({ "size": pageSize, "page": page, "listOfFilters": filters});
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });

return this.http.post('http://localhost:8080/cookbook/recipe/filter',body,options)
        .map((res: Response) => res.json());}

过滤类别:

export class Filter{
    products = new Array<String>();
    rating: {[key: string]:string} = {};
    level: {[key: string]:string} = {};
}

现在JSON看起来像:

{"size":10,"page":1,"listOfFilters":{"products":[],"rating":{"from":"1","to":"5"},"level":{"from":"1"
,"to":"5"}}}

我希望它看起来像(当产品列表为空时):

{"size":10,"page":1,"listOfFilters":{"rating":{"from":"1","to":"5"},"level":{"from":"1"
    ,"to":"5"}}}

我不完全确定,你希望endresult看起来像什么,但这是一个简单的if条件,你可以利用delete

if (filters.products.length == 0) {
    delete filters.products;
}

let body = JSON.stringify({ "size": pageSize, "page": page, "listOfFilters": filters });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM