2016-09-13 12 views
1

在我的過濾器中我有產品列表。我只想發送這個數組,當有一些元素。可能嗎?Angular2如何在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"}}} 

回答

0

我不完全確定,您希望endresult看起來像什麼,但這是一個簡單的條件,您可以在其中使用delete

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

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

對不起,我在Filter類中忘了約2個「地圖」。 – DonLeo

+0

也許在您的文章中解釋endresult應該是什麼樣子?因爲這個評論並沒有告訴我,爲什麼我的回答沒有幫助你:) – rinukkusu

+1

好的,我編輯了主題;) – DonLeo