Javascript 动态更新Angular 5中Chart.js注释插件中水平线的值
目前,我在条形图(ng2图表)上有一条水平线(使用chartjs插件注释绘制)。该值最初在图表选项“值:25000”中设置,并绘制图表,但在将新图表数据推送到数据集注释(在ngOnInit方法中)后,不会使用服务器的新数据更新该值(图表js不使用新数据刷新) ts文件中的代码:Javascript 动态更新Angular 5中Chart.js注释插件中水平线的值,javascript,angular,chart.js,Javascript,Angular,Chart.js,目前,我在条形图(ng2图表)上有一条水平线(使用chartjs插件注释绘制)。该值最初在图表选项“值:25000”中设置,并绘制图表,但在将新图表数据推送到数据集注释(在ngOnInit方法中)后,不会使用服务器的新数据更新该值(图表js不使用新数据刷新) ts文件中的代码: barChartOptions: any = { legend: { position: 'bottom', display:false, labels: {
barChartOptions: any = {
legend: {
position: 'bottom',
display:false,
labels: {
fontSize: 12
},
},
scales: {
xAxes: [{
gridLines: {
display: false,
},
scaleLabel: {
display: true,
}
}],
yAxes: [{
gridLines: {
display: true
},
scaleLabel: {
display: true,
},
ticks: {
min: 0,
stepSize: 50000
}
}]
},
annotation: {
annotations: [{
drawTime: 'afterDatasetsDraw', // overrides annotation.drawTime if set
id: 'a-line-1', // optional
type: 'line',
mode: 'horizontal',
scaleID: 'y-axis-0',
value: 25000,
borderColor: 'red',
borderWidth: 2,
}]
},
scaleShowVerticalLines: false,
responsive: true,
maintainAspectRatio: false
}
html中的代码:
<div class="barchart-details">
<canvas height="450"
baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[colors]="lineChartColors"
[legend]="barChartLegend"
[chartType]="barChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
</div>
如何使用从服务器获取的新数据动态更新属性:“value”
我尝试了此-->this.barChartOptions.annotation.annotations[0]。value=this.dataController.Mydata.value。
在使用chartJS时,它对我不起作用,你需要在每次更改时重新绘制图表
使用一个简单的条件就可以了。你试过重新绘制你的图表吗?使用一个简单的*ngIf。非常感谢,它可以工作:)。请添加此注释作为答案