chart.js 2.0 添加新的 属性 到数据集
chart.js 2.0 add new property to dataset
我需要在 dataset/label 中添加一个 属性 以便在点击时识别它。
我试过这样的事情:
Chart.controllers.customBar = Chart.controllers.bar.extend({
code: null
});
它几乎可以工作,因为我可以看到新的 属性 "code",数据与之关联,图表背景可见但为空,我的意思是数据集中的数据不可见。
这是我的初始化:
var ctx = document.getElementById("roads-chart").getContext("2d");
window.roadsBar = new Chart(ctx, {
type: 'bar',
data: roadsChartData,
options: {
title: {
display: true,
text: "Stan dróg"
},
tooltips: {
mode: 'label'
},
responsive: true,
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [{
stacked: true
}]
},
onClick: function(e, d) {
console.log(d);
}
}
});
问题是,我不觉得 Chart.js,谁能帮我处理一下,并举例说明扩展是如何工作的? :)
谢谢
虽然您可以扩展图表来执行此操作,但如果您不介意依赖内部属性(在 chart.js 的更高版本中可能会发生变化),您可以只使用 _datasetIndex
和 _index
属性以从图表配置中检索您的额外属性,就像这样
options: {
onClick: function(e, d) {
if (d.length > 0) {
console.log(this.config.data.datasets[d[0]._datasetIndex].code[d[0]._index]);
}
}
...
和
...
datasets: [{
code: ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
...
Fiddle - http://jsfiddle.net/55cdvb20/
我需要在 dataset/label 中添加一个 属性 以便在点击时识别它。 我试过这样的事情:
Chart.controllers.customBar = Chart.controllers.bar.extend({
code: null
});
它几乎可以工作,因为我可以看到新的 属性 "code",数据与之关联,图表背景可见但为空,我的意思是数据集中的数据不可见。
这是我的初始化:
var ctx = document.getElementById("roads-chart").getContext("2d");
window.roadsBar = new Chart(ctx, {
type: 'bar',
data: roadsChartData,
options: {
title: {
display: true,
text: "Stan dróg"
},
tooltips: {
mode: 'label'
},
responsive: true,
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [{
stacked: true
}]
},
onClick: function(e, d) {
console.log(d);
}
}
});
问题是,我不觉得 Chart.js,谁能帮我处理一下,并举例说明扩展是如何工作的? :)
谢谢
虽然您可以扩展图表来执行此操作,但如果您不介意依赖内部属性(在 chart.js 的更高版本中可能会发生变化),您可以只使用 _datasetIndex
和 _index
属性以从图表配置中检索您的额外属性,就像这样
options: {
onClick: function(e, d) {
if (d.length > 0) {
console.log(this.config.data.datasets[d[0]._datasetIndex].code[d[0]._index]);
}
}
...
和
...
datasets: [{
code: ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
...
Fiddle - http://jsfiddle.net/55cdvb20/