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

时间:2018-12-14 06:26:31

标签: javascript angular data-visualization

这是我的问题。在Angular中使用Chartjs的许多示例仅假设data is already there,并在ngAfterViewInit中进行渲染。

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

  • 我需要在构造函数中加载数据
  • 在加载数据时,我设置了一个布尔属性以显示不确定的mat-spinner
  • 当然,加载数据确实是不确定的,我不知道何时加载(也许是承诺土地)
  • 加载数据时,我需要使用Chartjs API将数据绘制到画布中
  • 如果我在构造函数中执行此操作,那么我会遇到document.getElementById('canvasId')的空引用,因为它尚未呈现。
  • 如果我将数据加载到构造函数中并想在ngAfterViewInit中渲染画布,那么我不知道何时加载数据,因为它是不确定的,并且我遇到的数据对象属性为空引用。 / li>
  • 如果我在ngAfterViewInit中加载数据,则Angular会抱怨ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ngIf: undefined'. Current value: 'ngIf: true'。此错误与mat-spinner *ngIf='progress'
  • 有关

在这一点上,我仍然坚持如何调和这些要求。有帮助吗?

1 个答案:

答案 0 :(得分:-1)

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

Angular Load Data from Service

我遇到表达式更改错误,但是在OnInit中加载和执行对我来说很有效。