javascript - hur man avmarkerar alla legender utom den andra legend som inte bör avmarkeras i echarts


här är koden:

const _this = this;
    const legendList = new Array();
    legendList.push("邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎")
    this.option = {
      title: {
        text: "堆叠区域图"
      },
      tooltip: {
        trigger: "axis",
        axisPointer: {
          type: "cross",
          label: {
            backgroundColor: "#6a7985"
          }
        },
        formatter: function(param: any) {
          let res = param[0].name + "<br/>";

          for (let x = 0; x < param.length; x++) {
            res += _this.uploadIcon + ' ' + param[x].seriesName + ': ' + Math.abs(param[x].data) + '<br/>'
          }
          return res;
        }
      },
      legend: {
        data: legendList,
        selected: {
          '搜索引擎': false
        }
      },
      toolbox: {
        feature: {
          saveAsImage: {}
        }
      },
      grid: {
        left: "3%",
        right: "4%",
        bottom: "3%",
        containLabel: true
      },
      xAxis: [
        {
          type: "category",
          boundaryGap: false,
          data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
        }
      ],
      yAxis: [
        {
          type: "value"
        }
      ],
      series: [
        {
          name: "邮件营销",
          type: "line",
          stack: "总量",
          areaStyle: {},
          data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
          name: "联盟广告",
          type: "line",
          stack: "总量",
          areaStyle: {},
          data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
          name: "视频广告",
          type: "line",
          stack: "总量",
          areaStyle: {},
          data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
          name: "直接访问",
          type: "line",
          stack: "总量",
          areaStyle: {},
          data: [320, 332, 301, 334, 390, 330, 320]
        },
        {
          name: "搜索引擎",
          type: "line",
          stack: "总量",
          label: {
            normal: {
              show: true,
              position: "top"
            }
          },
          areaStyle: {},
          data: [820, 932, 901, 934, 1290, 1330, 1320]
        }
      ]
    };

hur man avmarkerar alla förklaringar utom 搜索引擎 dynamiskt. Om det finns en ny förklaring kommer den automatiskt att inaktiveras. Till exempel, om det finns en ny förklaring som är Server, kommer den automatiskt att avmarkeras när den läggs till.

här är stackblitz-koden: https://stackblitz.com/edit/angular-ngx-echarts-c3qqyg?file=src/app/app.component.ts

Svar #1

du behöver skicka alla element till den valda {}-egenskapen om du vill göra den dynamisk eftersom den som standard kommer att välja alla legender.

 selected: {
  "搜索引擎": true,
  "邮件营销": false,
  "联盟广告": false, 
  "视频广告": false,
  "直接访问": false 
 }