Angular2 @ViewChild не получает BaseChartDirective из диаграмм ng2

Я использую 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?

1 ответ

Решение

Это сработало для меня: @ViewChild(BaseChartDirective) private Chart: BaseChartDirective;а потом this.Chart.ngOnChanges({} as SimpleChanges),

Но более простой способ сделать это - обновить переменную dChartData новыми данными, и она автоматически обновит вашу диаграмму новыми данными. Это быстрее, чем использование ngOnChanges. Надеюсь это поможет!

Другие вопросы по тегам