2017-02-24 3 views
0

서버가 배열이 아닌 개체 맵을 반환하는 시나리오가 있습니다. * ngFor에 데이터를 표시해야합니다.각도 2 :지도에서 ngFor 파이프 또는 rx를 사용 하시겠습니까?

파이프를 사용하는 것이 유리한이 one과 같은 우수한 스레드를 읽었습니다. 파이프가 기본적으로 순수하다는 것을 읽었으며 프리미티브 또는 참조로 변경된 경우에만 호출되지만 여전히 성능에 영향을 미칩니다.

어느 것이 더 성능이 좋습니까? 각도 파이프를 사용하거나 rxjs 스트림 수준에서 데이터를 배열로 변환 한 다음 데이터를 템플릿으로 보내기도합니다.

답변

3

질문은 주로 의견을 바탕으로하지만 파이프를 사용하는 대신 가능하면 소스에서 수정하는 것이 좋습니다. 당신이 얻을 수있는 소스에 가장 가까운 서버에 호출이있는 경우, 당신은이 (테스트되지 않은) 같은과, rxjs를 사용하여이 변경 제안 :

this.http.get(url) 
    .map(response => response.json()) 
    .map(data => Object.keys(data).map(key => data [key]); 
}); 
+1

그는 키와 값을 원하는 경우는,'객체를 고려한다. 입력 (데이터) .map (([key, value]) => ({[key] : value}))' –

+0

@AluanHaddad 그건 참으로 멋진 추가입니다. – PierreDuc

+0

고맙습니다. 이전 버전의 브라우저 및 NodeJS 런타임을 지원하려면 polyfill이 필요합니다. 이것은 core-js의 일부이며 mozzila https://github.com/es-shims/Object.entries에서 독립 실행 형 패키지를 개별적으로 찾을 수도 있습니다. –