Javascript 如何在构造函数中加载数据,并通过ngAfterViewInit中的Chartjs呈现数据?

Javascript 如何在构造函数中加载数据,并通过ngAfterViewInit中的Chartjs呈现数据?,javascript,angular,data-visualization,Javascript,Angular,Data Visualization,这是我的问题。很多在Angular中使用Chartjs的示例都只假设这一点,并在ngAfterViewInit中呈现 但是,我不知道如何满足我的要求: 我需要在构造函数中加载数据 加载数据时,我设置了一个布尔属性,用于显示不确定的mat微调器 当然,加载数据确实是不确定的,我不知道什么时候加载数据(可能是promise land) 加载数据时,我需要使用ChartJSAPI将数据绘制到画布中 如果在构造函数中执行此操作,则会遇到document.getElementById('canvasId

这是我的问题。很多在Angular中使用Chartjs的示例都只假设这一点,并在
ngAfterViewInit
中呈现

但是,我不知道如何满足我的要求:

  • 我需要在构造函数中加载数据
  • 加载数据时,我设置了一个布尔属性,用于显示不确定的
    mat微调器
  • 当然,加载数据确实是不确定的,我不知道什么时候加载数据(可能是promise land)
  • 加载数据时,我需要使用ChartJSAPI将数据绘制到画布中
  • 如果在构造函数中执行此操作,则会遇到
    document.getElementById('canvasId')
    的空引用,因为它尚未呈现
  • 如果我在constrcutor中加载数据,并希望在
    ngAfterViewInit
    中呈现画布,那么我不知道何时加载数据,因为它是不确定的,并且我遇到了数据对象属性的null引用
  • 如果我在
    ngAfterViewInit
    中加载数据,Angular会抱怨
    expressionChangedTerithasBeenCheckedError:Expression在被选中后发生了更改。上一个值:“ngIf:undefined”。当前值:“ngIf:true”
    。此错误与
    mat微调器*ngIf='progress'

我在这一点上被困在如何协调这些要求上。有什么帮助吗?

这篇文章使用服务获取数据,并在数据加载后呈现图表。希望有帮助


我收到表达式更改错误,但在OnInit中加载和执行对我有效。

此帖子使用服务获取数据,并在加载数据后呈现图表。希望有帮助

我将表达式更改为错误,但在OnInit中加载和执行对我有效