Я пытаюсь встроить диаграмму Google на вкладку PrimeNG. Я использую ответвление пакета Angular 2 Google Chart. Первый раз перехожу на страницу с диаграммой, все работает как положено. Однако, когда я ухожу и возвращаюсь, я получаю следующую ошибку:
Ошибка в классе ./MyChartComponent MyChartComponent — встроенный шаблон: 1:5, вызванная: Контейнер #my_chart не определен.
Это та же самая ошибка, которую можно было бы получить, если бы они пытались нарисовать диаграмму в несуществующем div. Насколько я могу судить,
1) это работает в первый раз, потому что есть задержка при извлечении библиотеки диаграмм, что позволяет отображать элемент <div id="my_chart"...>
. 2) при повторном открытии маршрута запускается последовательность событий, в результате которой библиотека диаграмм пытается установить содержимое div до того, как div будет включен в DOM.
Компоненты построения диаграмм работают нормально, если они не встроены во вкладки PrimeNG. Я подозреваю, что порядок, в котором происходят события, был нарушен этим. Я нашел ссылку, в которой говорится, что вкладки PrimeNG помещают контент в <ng-content>
. Если это нарушает какие-то отношения родитель/потомок в жизненном цикле компонентов, то я также полагаю, что мне нужно каким-то образом подождать при установке @Input
для компонента диаграммы до тех пор, пока не появится div "my_chart".
Я просмотрел документацию по различным крючкам жизненного цикла Angular, но не смог решить эту проблему. Любые советы будут оценены.