Javascript 动态更新Angular 5中Chart.js注释插件中水平线的值

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: {

目前,我在条形图(ng2图表)上有一条水平线(使用chartjs插件注释绘制)。该值最初在图表选项“值:25000”中设置,并绘制图表,但在将新图表数据推送到数据集注释(在ngOnInit方法中)后,不会使用服务器的新数据更新该值(图表js不使用新数据刷新)

ts文件中的代码:

    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。非常感谢,它可以工作:)。请添加此注释作为答案