我正在使用带有实时图表的chart.js插件,因此我想暂停滚动图表,但是当我动态调用pause时,它不起作用。
pausestart:boolean;
plugins: {
streaming: {
onRefresh: function(chart: any) {
chart.data.datasets.forEach(function(dataset: any) {
dataset.data.push({
x: Date.now(),
y: Math.random()
});
});
},
duration: 12000,
refresh: 100,
delay: 1000,
frameRate: 60,
pause: this.pausestart
}
}
我在点击暂停按钮后将pausestart
最初设置为false,将其设置为true
pause() {
this.pausestart = true;
}
start() {
this.pausestart = false;
}
我该如何解决这个问题。
答案 0 :(得分:2)
您可以使用BaseChartDirective
获取@ViewChild
,然后使用chart
属性设置pause
选项并调用update()
。
import { Component, ViewChild } from '@angular/core';
import { BaseChartDirective } from 'ng2-charts';
export class AppComponent {
@ViewChild(BaseChartDirective) chart: BaseChartDirective;
pause() {
this.chart.chart.options.plugins.streaming.pause = true;
this.chart.chart.update({duration: 0});
}
start() {
this.chart.chart.options.plugins.streaming.pause = false;
this.chart.chart.update({duration: 0});
}
...