代码之家  ›  专栏  ›  技术社区  ›  mohammad rostami siahgeli

如何在构造函数中加载数据,并在ngafterviewinit中通过chartjs进行渲染?

  •  2
  • mohammad rostami siahgeli  · 技术社区  · 6 年前

    这是我的问题。很多在角度上使用chartjs的例子都假设 data is already there ,然后他们把它 ngAfterViewInit

    然而,我不知道如何满足我的要求:

    • 我需要在构造函数中加载数据
    • 加载数据时,我设置了一个布尔属性来显示不确定的 mat-spinner
    • 当然,加载数据确实是不确定的,而且我不知道它何时加载(可能承诺土地)。
    • 加载数据时,我需要使用chartjs api将数据绘制到画布中
    • 如果在构造函数中执行此操作,则会遇到 document.getElementById('canvasId') ,因为它尚未呈现。
    • 如果我在constructor中加载数据并希望在 ngafterviewinit ,然后我不知道何时加载数据,因为它是不确定的,并且我遇到了数据对象属性的空引用。
    • 如果我在 ngafterviewinit ,然后安格尔抱怨说 ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ngIf: undefined'. Current value: 'ngIf: true' . 此错误与 mat-spinner *ngIf='progress'

    在如何协调这些要求上,我陷入了困境。有什么帮助吗?

    1 回复  |  直到 6 年前
        1
  •  -1
  •   Lereveme    6 年前

    本文使用一个服务来获取数据,并在数据加载后呈现图表。希望有帮助!

    Angular Load Data from Service

    我得到的表达改变了错误,但加载和执行在OnInit为我工作。