首页 > 解决方案 > 从 TreeMap 中检索对象

问题描述

我一直在使用一些 amCharts 4 图表,每次我都在努力订阅返回“选定/点击”元素的事件。我不知道我从文档中遗漏了什么,但是例如,我需要从“命中”事件中检索选定的项目,但我在任何地方都找不到(这是一个简单的我想试试这个在https://codepen.io/team/amcharts/pen/erojQb上)

var chart = am4core.create("chartdiv", am4charts.TreeMap);
chart.data = [{
  "name": "First",
  "value": 190
}, {
  "name": "Second",
  "value": 289
}, {
  "name": "Third",
  "value": 635
}, {
  "name": "Fourth",
  "value": 732
}, {
  "name": "Fifth",
  "value": 835
}];

/* Set color step */
chart.colors.step = 2;

/* Define data fields */
chart.dataFields.value = "value";
chart.dataFields.name = "name";

我试过这个:

chart.seriesTemplates.template.columns.events.on('hit', function(ev) {
  console.log('mlkmlz');
});

但没有被调用,这是:

chart.seriesContainer.events.on('hit', function(ev) {
  console.log(ev.target.dataItem)
});

但没有附加数据项

标签: amchartsamcharts4

解决方案


好的,所以它比这更复杂一些。要附加事件,您需要为特定级别实际创建系列,然后在其列模板上附加事件:

var series = chart.seriesTemplates.create("0");
series.columns.template.events.on('hit', function(ev) {
  console.log(ev.target.dataItem);
});

推荐阅读