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. Надеюсь это поможет!