ChartJS 我想创建下拉菜单来代替按钮,以便更改图表,但我的功能无法正常工作,< select>但使用按钮时,功能正常

pod7payv  于 2022-11-06  发布在  Chart.js
关注(0)|答案(1)|浏览(184)

这是我的html和ts代码,我想通过chartType函数创建用于更改图形的下拉列表,但出现错误,chartType不是函数,但该函数可以与按钮一起使用,但不能与下拉列表一起使用。

<div>
        <button mat-raised-button color="warn" (click)="chartType('bar')">Bar Chart</button>
        <button mat-raised-button color="primary" (click)="chartType('line')">Line Chart</button>
        <button mat-raised-button color="accent" (click)="chartType('radar')">Radar Chart</button>
        <button mat-raised-button color="primary" (click)="chartType('polarArea')">Polar Chart</button>

         <select name="chartType" id="chartType" onchange="chartType(this)">
            <option selected>Select Chart Type</option>
            <option value="bar">Bar</option>
            <option value="line">Line</option>
          </select>

        <div class = "chart" >
            <canvas id="canvas"> {{charts}} </canvas>

        </div>
    </div>

        chartType(type: any)
         {
           this.charts.destroy()
            this.charts = new Chart('canvas', {
              type: type,
              data: {
                labels: this.arr,

                datasets: [{
                  label: 'IR',
                  data: this.a1,
                  borderWidth: 3,
                  fill: false,
                  backgroundColor: 'red',
                  borderColor: 'red'

                }
                ]
              }
            })
          }
j5fpnvbx

j5fpnvbx1#

如果您在select元素上定义一个change事件处理程序,那么您的问题就应该得到解决了。

<select (change)="chartType($any($event.target).value)">

请看一下这个StackBlitz,看看它是如何工作的。

相关问题