我正在使用ng2-charts v1.5.0,并且试图在单击后使图表更新为新数据。我正在关注其他人发布的示例。

我认为我有:

<div style="display: block">

  <canvas #chart baseChart
              [data]="dChartData"
              [labels]="dChartLabels"
              [chartType]="dChartType"
              (chartClick)="chartClicked($event)">
  </canvas>

</div>


如果我写:

@ViewChild( BaseChartDirective ) chart: BaseChartDirective;


然后我得到:

__zone_symbol__error : Error: Can't construct a query for the property "chart" of "ChartTest1WidgetComponent" since the query selector wasn't defined.


如果我写:

@ViewChild( 'chart' ) chart: BaseChartDirective;


然后我呼叫this.chart.ngOnChanges({});,但得到:_this.chart.ngOnChanges is not a function

这对我来说没有意义。如何获得引用BaseChartDirective的适当的视图子级?

最佳答案

这为我工作:
@ViewChild(BaseChartDirective) private Chart: BaseChartDirective;
然后this.Chart.ngOnChanges({} as SimpleChanges)

但是,更简单的方法是使用新数据实际更新变量dChartData,并且它应该自动使用新数据更新图表。它比使用ngOnChanges更快。希望这可以帮助!

08-08 03:58