我可以在amchart图形中保存状态吗?

时间:2018-11-26 13:40:16

标签: javascript laravel amcharts

我的任务是添加其他功能,以在用户注销时切换图例项后可以保存其状态,并且登录后状态应相同。是否可以在amchart中进行设置?

1 个答案:

答案 0 :(得分:2)

AmCharts不提供任何内置解决方案来保存/加载图表状态,因此您需要编写自己的自定义代码。如@Abhijit所述,您可以使用localStorage来完成此操作。我已经在我们的支持论坛中使用图例事件提供了示例解决方案,但是在这里,它再次适合您以及正在寻找的任何其他人:

AmCharts.makeChart("...", {
  // ...
  graphs: [{
      // ...
      //get hidden value from localStorage. needs to cast stored string "1" or "0" to a number, then casted to a boolean if a value exists
      hidden:
        localStorage.carsHidden !== undefined
          ? !!+localStorage.carsHidden
          : false,
   },
  // repeat
  ],
  legend: {
    // ...
    listeners: [
      {
        event: "showItem",
        method: saveState
      },
      {
        event: "hideItem",
        method: saveState
      }
    ]
  }
});

function saveState(e) {
  localStorage[e.dataItem.valueField + "Hidden"] =
    e.type === "hideItem" ? 1 : 0;
}

Demo