2017-11-09 2 views
0

저는 각도 j에서 다소 새로운 것으로, 서비스에서 구성 요소로 필터링 된 데이터를 반환하고자했습니다.각도 2는 서비스에서 필터링 된 데이터를 반환합니다.

이것은 내 JSON 모습이 좋아

{ 
"emails": [ 
    { 
     "list": [ 
     { 
      "id": 1, 
      "subject": "Test Subject 1" 
     }, 
     { 
      "id": 2, 
      "subject": "Test Subject 2" 
     }] 
    }, 
    { 
     "list": [ 
     { 
      "id": 3, 
      "subject": "Test Subject 3" 
     }, 
     { 
      "id": 4, 
      "subject": "Test Subject 4" 
     }] 
    } 
] 

}

이 내 서비스

export class EmailService { 

emails: any 

constructor(private http: Http) {} 


getEmailItem(id: number | string) { 
    return this.http 
    .get('../../../assets/js/data/email-list.json') 
    .map(data => {data.json(); return data.json();}); 
} 

} 나는 다음과 같이 데이터를 반환 할

, 내가 어떻게해야합니까이다 ?

 
{ 
    "id": 1, 
    "subject": "Test Subject 1" 
}, 

모든 가이드는 감사하겠습니다은 당신이 당신의 JSON을 flatout 다음 필터를 적용 할 수 있습니다 당신이 도움이

getEmailItem(id: number | string) { 
    let flatData = []; 
    return this.http 
    .get('../../../assets/js/data/email-list.json') 
    .map(data => {data.json(); return data.json();}) 
    .map(this.flatEmailList) 
    .filter(email => email.id == id); 
} 

flatEmailList(data){ 
    let flatData = []; 
    data.emails.map(emails => flatData = flatData.concat(emails.list)); 
    return flatData; 
} 

희망을

답변

1

감사드립니다!

+0

안녕하세요, 귀하의 답변을 주셔서 감사합니다, 내가 원하는 데이터를 반환하지만 오류가 발생했습니다 : 속성 'ID'유형 'any []'에 존재하지 않습니다. –

관련 문제