amcharts 地图:点击时动态更改工具提示
amcharts map : Changing tooltip dynamicly on hit
我正在使用 amcharts4,我想在点击事件时动态更改工具提示值;
我试过了:
let chart = am4core.create("chartdiv", am4maps.MapChart);
chart.projection = new am4maps.projections.Miller();
let worldSeries = chart.series.push(new am4maps.MapPolygonSeries());
... some code
let worldPolygon = worldSeries.mapPolygons.template;
worldPolygon.tooltipText = '{name}';
worldPolygon.events.on("hit", async function(ev) {
let destination_actif = await context.$get_destination_actif_by_country_code(code) // api request on hit a country polygon
// condition to check if there is result
if(!destination_actif.data){
worldPolygon.tooltipText = 'No result';
}else{
worldPolygon.tooltipText = 'With result';
}
}
请求 api 命中后,我想根据结果条件更改工具提示值,但是在这里,当我 console.log
工具提示时,值发生了变化,但是悬停在多边形上"{name}"
上的值仍然相同
所以我发现了问题所在,在我之前的代码中我试图更改整个工具提示,但这是错误的方式;我只需要更改目标工具提示,所以我这样做了:
worldPolygon.events.on("hit", async function(ev) {
let destination_actif = await context.$get_destination_actif_by_country_code(code)
let target = ev.target
if(!destination_actif.data){
target.tooltipText = 'No result';
}else{
target.tooltipText = 'With result';
}
我正在使用 amcharts4,我想在点击事件时动态更改工具提示值; 我试过了:
let chart = am4core.create("chartdiv", am4maps.MapChart);
chart.projection = new am4maps.projections.Miller();
let worldSeries = chart.series.push(new am4maps.MapPolygonSeries());
... some code
let worldPolygon = worldSeries.mapPolygons.template;
worldPolygon.tooltipText = '{name}';
worldPolygon.events.on("hit", async function(ev) {
let destination_actif = await context.$get_destination_actif_by_country_code(code) // api request on hit a country polygon
// condition to check if there is result
if(!destination_actif.data){
worldPolygon.tooltipText = 'No result';
}else{
worldPolygon.tooltipText = 'With result';
}
}
请求 api 命中后,我想根据结果条件更改工具提示值,但是在这里,当我 console.log
工具提示时,值发生了变化,但是悬停在多边形上"{name}"
所以我发现了问题所在,在我之前的代码中我试图更改整个工具提示,但这是错误的方式;我只需要更改目标工具提示,所以我这样做了:
worldPolygon.events.on("hit", async function(ev) {
let destination_actif = await context.$get_destination_actif_by_country_code(code)
let target = ev.target
if(!destination_actif.data){
target.tooltipText = 'No result';
}else{
target.tooltipText = 'With result';
}