amcharts - AMCharts - 将子项动态添加到树状图
问题描述
我非常喜欢 AMChart 的许多功能,但我找不到任何方法可以将一些子项动态添加到树形图中。
我正在尝试为每个元素加载额外的子元素
for (var i = 0; i < this.maxDepthLevel; i++) {
const series = this.chart.seriesTemplates.create(i);
series.columns.template.events.on("hit", async function(ev) {
const data = ev.target.dataItem.dataContext;
children = await api.getChildrenOf(data.id);
ev.target.dataItem.treeMapDataItem.children.values.push(...children);
});
}
^ 这不起作用,当这样做然后缩小时,我得到
我什至尝试更改基础数据然后调用
this.chart.invalidateRawData();
但无济于事。
有没有人有将这样的动态孩子添加到树形地图的经验?我不能简单地预先加载所有内容,不幸的是,可能的深度层太多了,请求也会太大!
解决方案
而不是直接将子项推送到子值,您需要这样做:
for(var index=0; index < children.length; index++){
var newChildDataItem = new am4charts.TreeMapDataItem();
newChildDataItem.value = children[index].value;
newChildDataItem.name = children[index].name;
newChildDataItem.color = ev.target.dataItem.dataContext.color;
ev.target.dataItem.dataContext.children.insert(newChildDataItem);
}
推荐阅读
- php - 事件侦听器不适用于捆绑 FMElfinder
- python - 如何配置 mod_wsgi + apache2 以使用 Flask + SocketIO?
- python - 使用非结构化数据的 href 链接抓取表格
- json - Acumatica API - 创建标记为 PO 的约会详细信息
- amazon-web-services - Airflow 1.10.10 [核心] 与 1.10.15 [日志] AWS S3 远程日志记录
- javascript - 在 Azure Function 中从 Azure SQL 数据库获取数据
- php - 扩展在php中创建zip文件后出现奇怪的字符 - IIS
- java - 如何仅传递元素 s1 和 s2 而不是整个数组 int e1.setEmployeeSkill?
- excel - Excel VBA - 将基于两个参数的数据复制到另一个工作表中
- c++ - 有没有办法只允许一个线程使用套接字?