2016-09-13 8 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

私は完全にはわかりませんが、最終結果をどのように見せたいかは、deleteを利用できる単純なif条件です。

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

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

申し訳ありませんが、私はフィルタークラスで約2つの "マップ"を忘れていました。 – DonLeo

+0

最終結果がどのように表示されるべきかをあなたの記事で説明してください。このコメントは私には言わないので、なぜ私の答えはあなたを助けないのですか? – rinukkusu

+1

OK、私はトピックを編集しました;) – DonLeo

関連する問題