1

这是我的 Angular 应用程序与 amchart 的 stackblitz 链接。 Amchart Angular 应用程序

出于用户体验的原因,我保持图表堆栈颜色相同。现在在代码中,如果我使用 amcharts 默认图例(代码的第 225 行),一切正常。在单击图例时,它会相应地过滤堆栈图,但再次出于 UX 原因,我使用自定义项作为图例(代码中的第 227 到 235 行),在这里,当我单击图例时,堆栈列没有得到相应的过滤。这种场景下如何实现amchart的默认图例行为?

4

1 回答 1

2

我想通了,在我的代码中添加了以下更改,我达到了预期的结果:

legend.itemContainers.template.clickable = true;

      legend.itemContainers.template.togglable = false;

      legend.itemContainers.template.events.on('hit', (ev) => {
        // console.log(ev);
        if (ev.target.dataItem.dataContext['name'] === 'Success') {
          series2.hide();
          series3.hide();
        }
        if (ev.target.dataItem.dataContext['name'] === 'Failed') {
          series1.hide();
          series3.hide();
        }
        if (ev.target.dataItem.dataContext['name'] === 'Progress') {
          series1.hide();
          series2.hide();
        }
        if (ev.target.dataItem.dataContext['name'] === 'All') {
          if (series1.isHidden) {
            series1.show();
          }
          if (series2.isHidden) {
            series2.show();
          }
          if (series3.isHidden) {
            series3.show();
          }
        }
      });
于 2019-06-15T06:01:33.687 回答