我試圖在PrimeNG tab中嵌入Google圖表。我正在使用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包含在DOM中之前設置div的內容。
圖表組件在PrimeNG選項卡中沒有嵌入時正常工作。我懷疑事件的發生順序已被打破。我發現PrimeNG標籤將內容放入<ng-content>
。如果這打破了組件生命週期中某種父/子關係,那麼我進一步假設我需要一些方法來等待將@Input
設置爲圖表組件,直到存在「my_chart」div爲止。
我已經挖掘了各種Angular生命週期鉤子的文檔,但一直未能解決這個問題。任何adivice將不勝感激。