echarts图例legend选中状态动态设置 selected
功能前端页面展示,需要对所有指标的图例默认选中状态只显示前两个,其他指标的图例状态默认为灰色。
1、因为所有的指标为动态加载的,因此图例legend选中状态也要通过js进行动态加载,从官方的文档里可以查询到legend.selected配置项可以设置图例的默认状态。
官方示例,true为选中展示系列,false为灰色默认不展示该系列:
selected: {
// 选中'系列1'
'系列1': true,
// 不选中'系列2'
'系列2': false
}
2、js代码
//图例配置项
legend: {
x: 'center',
y: 'bottom',
data: $scope.key_value,
selected:{}
},
//js动态加载
var selected_item = {};
for(i =0; i < $scope.key_value.length; i++){
var key_name = $scope.key_value[i];
if(i >1){
selected_item[key_name] = false;
}else{
selected_item[key_name] = true;
}
};
option.legend.selected = selected_item;
//标红是踩过的坑 原始写法selected_item.key_name = false; 会报错,原因是: json 解析时 key_name 都按字符串解析,不识别变量.
下面附加一下动态给对象添加属性和值得两种常用法法
function Person(){}; var person = new Person(); person.name = 'yy'; person.gender = 'girl'; console.log(person.name+','+person.gender);//yy,girl delete person.name;//删除属性 console.log(person.name);//undefined // 变式 function Person(){}; var person = new Person(); person['name'] = 'yy'; person['gender'] = 'girl'; console.log(person.name+','+person.gender);//yy,girl delete person.name;//删除属性 console.log(person.name);//undefined