javascript - Chart.js v2 覆盖绘制函数

标签 javascript jquery chart.js

我使用的是chart.js 2.6.0,这是最新版本。

我正在尝试覆盖条形图以使 Angular 变圆。我找到了这个脚本:https://github.com/jedtrow/Chart.js-Rounded-Bar-Charts/blob/master/Chart.extentions.js而且效果很好。

我创建了一个新的图形选项:“is_curved”,因为我在同一页面上有多个图形,并且我只想为其中一些图形制作圆 Angular 。

我的情况的问题是,如果我使用以下代码,所有图表都有圆 Angular :

Chart.elements.Rectangle.prototype.draw = function() {
    //code to make corners rounded
}

功能:

Chart.elements.Rectangle.prototype.draw

在所有图表上调用。我希望它仅在选项“is_curved”设置为 true 时执行。所以我尝试了:

Chart.elements.Rectangle.prototype.draw = function() {
    if(!this._chart.options.is_curved) {
        return;
    }
    //code to make corners rounded
}

但这仍然是错误的,因为没有将“is_curved”选项设置为 true 的图形是空的,我想我调用 .draw 方法的事实会删除所有现有的功能,即使我不'不要为它们添加新功能。

知道如何将绘制函数设置为仅适用于“is_curved”选项设置为 true 的图表吗?谢谢。

最佳答案

更改这行代码:

var cornerRadius = 5;

对此:

var cornerRadius = this._chart.options.is_curved ? 5 : 0;

这会将栏圆 Angular 半径设置为 5 ,如果 is_curved 属性设置为 true 对于任何特定图表,否则将设置为 0 .

参见 - working example on JSFiddle

关于javascript - Chart.js v2 覆盖绘制函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483167/

相关文章:

javascript - 如何在初始化后更改 jQuery 对话框 html 内容?

javascript - 添加代码以防止双重提交 JQuery 后提交不起作用

jquery - AjaxForm 清除文件输入元素

javascript - d3 图表 + jQuery 数据表 : trouble reading nested array

background - 如何在 Chartjs 中添加图像作为背景?

javascript - contact form 7提交成功后如何打开弹窗

javascript - 从电子邮件中删除无效字符

javascript - jQuery 值拾取

javascript - 我的饼图(chartJs)没有出现

javascript - Chart JS 使用 onclick 重新动画图表