Я пытаюсь встроить диаграмму Google в PrimeNG tab. Я использую вилку Angular 2 Google Chart package. В первый раз, когда я направляюсь на страницу с диаграммой, все работает так, как ожидалось. Однако, когда я уйду, и вернуться я получаю следующее сообщение об ошибке:Подождите, пока элемент будет определен в Angular2
Error in ./MyChartComponent class MyChartComponent - inline template:1:5 caused by: The container #my_chart is not defined.
Это та же ошибка, можно было бы получить, если они пытаются нарисовать диаграмму в DIV, который не существовал. Насколько я могу судить,
1) он работает в первый раз, потому что есть задержка, когда библиотека диаграмм извлекается, что позволяет отображать элемент <div id="my_chart"...>
. 2) при повторном открытии маршрута происходит последовательность событий, которые приводят к созданию библиотеки диаграмм, чтобы попытаться установить содержимое div до того, как div был включен в DOM.
Компоненты построения диаграмм отлично работают, когда они не встроены в вкладки PrimeNG. Я подозреваю, что порядок, в котором происходят события, был нарушен этим. Я нашел ссылку, в которой вкладки PrimeNG помещали контент в <ng-content>
. Если это нарушает какие-то отношения родителя/ребенка в жизненном цикле компонентов, я также предполагаю, что мне нужно некоторое время ждать установки @Input
компоненту диаграммы до тех пор, пока не будет существовать div «my_chart».
Я прорыл документацию по различным крючкам жизненного цикла, но не смог решить эту проблему. Любая авизиция будет оценена по достоинству.