he declarado chart.js dentro ng-template pero el gráfico no se muestra correctamente
<div style="display: block; width: 100%"> <ng-container *ngTemplateOutlet="qualitySurveyTemp"></ng-container> </div> <ng-template #qualitySurveyTemp> <canvas id="canvas">{{ chart }}</canvas> </ng-template>funciona bien cuando uso como a continuación
<div style="display: block; width: 100%"> <canvas id="canvas">{{ chart }}</canvas> </div>muestra: https://stackblitz.com/edit/angular-chartjs-barchart-sjamlr?file=src%2Fapp%2Fapp.component.html
Parece que debido a que está tratando de trazar el gráfico en una plantilla secundaria, no está disponible en el gancho ngOnInit . Puede ver esto al intentar registrar document.getElementById('canvas') , esto devolverá un valor nulo. Si cambia al gancho ngAfterViewInit para crear el gráfico, funciona bien:
https://stackblitz.com/edit/angular-chartjs-barchart-uqqnay?file=src%2Fapp%2Fapp.component.ts