angular - Ionic 3 Angular Chart.js 更新数据

标签 angular chart.js ionic3

我正在将 Chart.js 与我的 Ionic 3 Angular 应用程序一起使用。一切正常,除了我无法刷新实际更改的栏的数据。

这是代码:

ionViewDidLoad(){
    this.barChart = new Chart(this.barCanvas.nativeElement, 
    {
        type: 'bar',
        data: {
            labels: ["Safeway", "CVS", "Walgreens", "Bon Appetit"],
            datasets: [{
                label: "Pepsi",
                backgroundColor: "#002F6F",
                data: this.pepsiData
            }, {
                label: "Coke",
                backgroundColor: "#F50000",
                data: this.cockData
            }, {
                label: "V8",
                backgroundColor: "orange",
                data: [83,19,32,34]
            }]
        },
        options: {
            title: {
                display: true,
                text: 'Brands'
            }
        }
    });
}

单独的按钮将 pepsiData 数组的数据更新为:

this.pepsiData[3] = 80;

但这不会刷新特定的栏。我现在的丑陋解决方案是重新绘制整个图表,这看起来是一个糟糕的解决方案。

最佳答案

正如 Chart.js 文档中所述,如果您希望在创建图表后更新图表中的数据,则需要调用 chart.update():

http://www.chartjs.org/docs/latest/developers/updates.html

添加数据然后更新图表的示例:

function addData(chart, label, data) {
    chart.data.labels.push(label);
    chart.data.datasets.forEach((dataset) => {
        dataset.data.push(data);
    });
    chart.update();
}

在更新函数中完成数据更改后,您只需添加更新代码行,如下所示:

this.pepsiData[3] = 80;
myChart.update();

关于angular - Ionic 3 Angular Chart.js 更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45184393/

相关文章:

java - 从 Web 应用程序启动远程可执行文件

javascript - AngularFireMessaging - 错误 this._next 不是函数

javascript - chart.js 删除悬停效果

ios - firebase 社交登录未重定向到应用程序、ionic 3、ios

android - 升级到 ionic3 后 - Gradle 同步失败 : No match found

angular - Ionic 3 延迟加载使大型 html 文件滞后

javascript - 指向外部 URL 的 Angular 2 链接被视为路由的相对路径

javascript - Angular - 如何将多个 FormGroups 插入 FormArray?

chart.js - ChartJS 2 如何全局删除xAxis gridLines?

javascript - Chart.js 图表通过 MVC Controller 传递数据