PrimeNG tab에 Google 차트를 삽입하려고합니다. Angular 2 Google Chart package 포크를 사용하고 있습니다. 처음으로 차트가있는 페이지로 이동하면 모든 것이 예상대로 작동합니다.요소가 각도 2로 정의 될 때까지 기다립니다.
Error in ./MyChartComponent class MyChartComponent - inline template:1:5 caused by: The container #my_chart is not defined.
이 그들이 존재하지 않았다 사업부로 차트를 그리려고한다면 하나가 얻을 것과 같은 오류입니다 : 내가 멀리 탐색 할 때, 나는 다음과 같은 오류가 반환합니다. 그림에서 알 수 있듯이
1) 차트 라이브러리를 검색하는 동안 지연이 발생하여 <div id="my_chart"...>
요소를 렌더링 할 수 있으므로 처음으로 작동합니다. 2) 경로를 다시 열면 div에 DOM이 포함되기 전에 차트 라이브러리에서 div의 내용을 설정하도록하는 일련의 이벤트가 발생합니다.
차트 구성 요소가 PrimeNG 탭에 포함되어 있지 않은 경우 제대로 작동합니다. 나는 사건이 일어난 순서가 이것에 의해 망가 졌다고 의심한다. 나는 PrimeNG 탭이 콘텐츠를 <ng-content>
에 넣었다고 언급했다. 이것으로 구성 요소 수명주기에서 일종의 부모/자식 관계가 깨지면 "my_chart"div가 존재할 때까지 @Input
을 차트 구성 요소로 설정하는 것을 기다리는 방법이 필요하다고 가정합니다.
다양한 앵글 라이프 사이클 후크에 대한 문서를 파헤 치지만이 문제를 해결할 수는 없습니다. 모든 adivice 감사하겠습니다.
:ngOnInit() {
//The 'data' gets loaded into the snapshot by the route resolver
this.chartData = this.route.snapshot.data['chartData'];
}
그런 다음 당신은 확인자 클래스를 만들 수 있습니다
{
path: '',
resolve: { chartData: ChartResolver },
component: MyChartComponent
}
그런 다음 구성 요소에 데이터가 있음을 당겨 :