2017-02-06 9 views
1

Я использую ng2-charts v1.5.0, и я пытаюсь получить диаграмму для обновления новыми данными после щелчка. Я следую примерам, опубликованным другими.Angular2 @ViewChild не подбирает BaseChartDirective из ng2-диаграмм

На мой взгляд, у меня есть:

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

+0

Какую версию ng2-диаграмм вы используете? – BBaysinger

+0

ng2-charts Версия 1.5.0, chart.js 2.4.0 – Vysh

+0

BaseChartDirective для меня не определен. Как вы его импортируете? – BBaysinger