2016-09-13 2 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 (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

관련 문제