ECharts绘图修改搜索条件legend选择状态不保存

    不知道大家用ECharts时有没有遇到过这种需求:ECharts画出的图有多种数据,并且可以点击图例控制数据的展示和隐藏,如果修改了查询条件,图也会重新生成,但是之前选择的图例状态又回到了初始的状态!这种情况下,如何保证图片重新生成的时候记录图例的选择状态呢?研究了一下ECharts的API文档,想出了如下解决办法:

    设定图例名为name,初始化option的时候代码为:

    //初始化参数

    var legendOptions={a:{color:'red',selected: true}, b:{color:'green', selected: true}, c:{color:'blue', selected: false}};

    //ajax数据

    data = {a:[1,2,1,2,1], b:[2,1,2,1,2], c:[1,1,2,2,1]};

    for(var name in data)

    option.legend.data.push(name);

    option.legend.selected[name]=legendOptions[name].selected;//(这里是默认选择状态)

    ......

    myChart = ec.init(...);

    myChart.setOption(option);

    以上为一开始的代码,每次重新生成图表都会初始化legend选择状态,可以做如下修改

    在设置option.legend.selected[name]的时候处理一下

    if(myChart){

      option.legend.selected[name]=myChart.component.legend.isSelected(name);//这里获取之前的选择状态

    }else{

      option.legend.selected[name]=legendOptions[name].selected;//(这里是默认选择状态)

    }

    其他的按照常规来就行了,如果大家有更好的解决方案,可以互相探讨一下

posted @ 2016-11-07 10:03  mjfmei  阅读(2667)  评论(0编辑  收藏  举报