AmCharts5 在显示后改变节点的颜色

问题描述 投票:0回答:1

我正在使用 AmCharts5 JS 构建一个图表,将域名显示为 ForceDirected 树中的节点。显示域,并且异步函数检查它们的可用性,并尝试根据可用性更改它们的颜色。这就是我被困住的地方。

我创建了一个适配器,可以根据节点的“可用性”属性更改节点的颜色:

 series.circles.template.adapters.add("fill", function(fill, target) {

   if (target.dataItem.dataContext.availability == 'unavailable') {
     return am5.color(0xb30000);
   }
   else {
     return am5.color(0x50b300);
   }
 });

这对于首先使用可用性属性实例化的节点非常有效。

但在我的用例中,在从异步查询获取结果后,我使用 series.getDataItemById('nameOfNode').dataContext.availability = 'XYZ'

更新
可用性属性。这会更改 dataContext,但不会重新触发适配器,并且颜色保持不变。

有没有办法重新触发适配器?或者手动强制特定数据项的颜色更改?我左右浏览了文档,但找不到任何东西。

谢谢!

amcharts
1个回答
0
投票

当然,你只需要在更改 dataContext 后在 Sprite 上设置填充,例如:

var circle = series.getDataItemById('nameOfNode').get("circle");
circle.set("fill", circle.get("fill"));
© www.soinside.com 2019 - 2024. All rights reserved.