Javascript Chart.JS插件使用两次会导致错误
我写了一个非常简单的插件,用于在条形图中为负值着色Javascript Chart.JS插件使用两次会导致错误,javascript,charts,chart.js,Javascript,Charts,Chart.js,我写了一个非常简单的插件,用于在条形图中为负值着色 var ColourNegatives = { beforeDraw: function(c) { var data = c.data.datasets[0].data; for (let i in data) { let bar = c.data.datasets[0]._meta['0'].data[i]._model; if (data[i] > 0) {
var ColourNegatives = {
beforeDraw: function(c) {
var data = c.data.datasets[0].data;
for (let i in data) {
let bar = c.data.datasets[0]._meta['0'].data[i]._model;
if (data[i] > 0) {
bar.backgroundColor = '#337AB7';
} else bar.backgroundColor = '#B73434';
}
}
};
当把它作为一个单一条形图的插件时,它不会有问题
当我在同一页上有两个图表时,第二个图表无法生成,控制台显示
TypeError:c.data.datasets[0]。\u meta[0]未定义
问题是元[0]部分。如果我有两个函数(每个表一个),一个带meta[0],另一个带meta[1],那么一切正常
有人知道我怎样才能让元数据与图表编号匹配,而不是让每个图表都有一个单独的插件吗?最终,页面上可能会有10多个图表都需要这种配色方案
我尝试过各种方法,比如for循环
var x;
for (x= 0; x < 5; x++) {
/* Plugin Code */
}
varx;
对于(x=0;x<5;x++){
/*插件代码*/
}
但是这不起作用。那么
c.data.datasets[0]包含什么?\u meta
通过使用具有相同代码的新var解决了这个问题,并在第二张图表上调用了它。