javascript - Amcharts 4 TreeMap 项目符号链接
问题描述
我有来自 amcharts4 的一级树形图。
单击它时,我试图为每个项目符号设置一个链接,但无法实现我想要的。
正如文档所说,我尝试过:
level1_bullet.label.url = "https://www.google.com/";
或者
level1_bullet.url = "https://www.google.com/";
两者都不起作用,我可以添加
level1_bullet.label.html = "<a href='https://google.com/'>{name}</a>";
但是 truncate 选项有一个问题,它不起作用,我可以看到对于最小的子弹来说太大的名字,wrap 也没有帮助。
解决方案
要将 aLabelBullet
转换为链接,请尝试:
level1_bullet.label.url = "https://www.google.com/";
如果我们想要动态 url,我们将不得不使用一个适配器。这url
是一个简单的字符串,它并不是真正用于显示的,因此它不会经过我们的字符串格式化{name}
,这意味着不会解析像这样的占位符。幸运的是Label
s 有一个适配器用于他们的url
. 它看起来像这样:
level1_bullet.label.adapter.add("url", function(url, label) {
var query = "";
var data = label.dataItem;
if (data.dataContext && data.dataContext.name) {
query = "?q=" + data.dataContext.name;
}
return url + query;
});
适配器的处理程序将url
设置为Label
("https://www.google.com/"
在这种情况下) 作为第一个参数,将Label
实例设置为第二个参数。我们return
最终成为自定义格式url
,即它不会永久设置它,每次您的应用程序确定值url
应该是什么时都会运行它。
我在这里创建了一个演示:
https://codepen.io/team/amcharts/pen/79194dfcfccaa05f5ebe20e1095f3087
让我知道这是否有意义,如果这对您想要做的事情有帮助。
推荐阅读
- openstack - OpenStack 安装后无法登录仪表板
- typescript - 如何根据打字稿中的参数定义返回类型
- typescript - TypeScript – 对象数组联合的值产生交集,而不是联合
- javascript - 替换枚举 - 需要更好的解决方案
- vue.js - Vue:创建方法中的参数值不会改变
- android - Android Webview 如何在不使用任何 httpclient 触发每个请求的情况下获取响应标头
- vcpkg - 为 vcpkg 设置编译器
- python - 随机森林分类器的导入错误
- c# - 我在禁用组件时遇到错误
- regex - 正则表达式匹配部分或全部字符串,从左到右移动