如何使用chart.js仅更改图表中的特定选项?

时间:2018-10-19 10:08:03

标签: javascript angular chart.js

我有一个input类型的number,在max ticks上有X-axis

我订阅了该输入的valueChange,而我发现更新tick选项的max value的唯一方法是:

updatedMaxTickX(chart: any, newMax: number): void {
        chart.options = {
            scales: {
                xAxes: [
                    {
                        ticks: {
                            max: newMax
                        }
                    }
                ]
            }
        };
    }

然后:

this.detailsForm.get("max").valueChanges.subscribe(v => {
this.updatedMaxTickX(this.canvas, v);
this.canvas.update()
});

这有效,输入更改时最大Ticks会更新,但是还会发生其他所有选项都被重置!

所以基本上我认为这会覆盖我的选项,并将其他所有内容都设为默认值。

如何仅更改ticks.max,同时保持控制器中定义的其他所有内容?

我尝试过

this.detailsForm.get("max").valueChanges.subscribe(v => {
this.canvas.options.scales.xAxes.ticks.max = v;
this.canvas.update()
});

但这不起作用,并给我错误。

1 个答案:

答案 0 :(得分:1)

xAxes是一个数组,它应该可以工作:

myChart.options.scales.xAxes[0].ticks.max = v;