Observables/Subjects of Angular2에 대한 이해를 돕기 위해 도움을 요청합니다. 나는 다음과 같은 형식의 일부 데이터를 표시하기 위해 노력하고 응용 프로그램이 있습니다각도 2의 관찰 가능한 하위 객체
'data view component'
|
--> 'section component'
|
--> 'data item component'
'데이터 :
sections = [
{
_id: '999'
name: 'section 1'
items: [
{
name: "item 1.1"
property1: "value 1.1.1"
property2: "value 1.1.2"
property3: "value 1.1.3"
}
{
name: "item 1.2"
property1: "value 1.2.1"
property2: "value 1.2.2"
property3: "value 1.2.3"
}
]
},
{
_id: '888'
name: 'section 2'
items: [
{
name: "item 2.1"
property1: "value 2.1.1"
property2: "value 2.1.2"
property3: "value 2.1.3"
}
{
name: "item 2.2"
property1: "value 2.2.1"
property2: "value 2.2.2"
property3: "value 2.2.3"
}
]
}
.
.
.
]
이 작업을 수행하기를, 나는 다음과 같다 구성 요소 트리를 설정 한 섹션 구성 요소는 데이터 항목의 구성 요소 '호스트' '데이터는 다음과 같습니다 뷰 구성 요소는'
<section-component
*ngFor="let section of sectionData$ | async"
></section-component>
은과 같이 섹션 구성 요소로 전달되는 관찰라는 sectionData의 $로 섹션의 목록을 보유하고 ' 과 같이 전달 :
<data-item-component
*ngFor="let item of section.items"
></data-item-component>
변화가 발생했을 때, 즉 sectionData $ 다음 내용() 전체 컴포넌트 트리가 업데이트 ... 변화 만 항목 중 하나 또는 두 개의 발생하더라도라고 주어진 섹션 내에서. 화면에 표시 할 데이터의 복잡성과 크기에 따라 상당히 느려질 수 있습니다.
상위 관찰 가능 항목의 해당 하위 개체가 변경 될 때만 구성 요소를 업데이트하려면 어떻게해야합니까?
변경 감지가 유망 해 보입니다. 그러나 많은 구성 요소에 대한 데이터가 포함 된 관찰 가능 항목이 하나 있고 next()가 호출되는 경우 ... 데이터의 한 부분 만 변경된 경우에도 각도로 처리하지 않습니다. 새 데이터 객체가 필요하므로 이에 의존하는 모든 구성 요소를 변경해야합니다. –
@AdrianTaylor : 내 경험과 문서를 기반으로, 아니요. observables에서 subscribe를 사용하고 changeDetection이 "OnPush"로 설정된 경우 변경이 발생했을 때 Angular2에 알려야합니다. 즉, 변경 사항이 발생했는지 평가하고 결정한 다음 ChangeDetecorRef 객체를 사용하여 Angular2에 경고를 보낼 수 있습니다. –
알아두면 좋을 것 같은데 .. 이걸 시험해 볼게. –