TEMP_DATA值必须相同,但是正在改变

问题描述 投票:0回答:1

在我的应用程序中,我在过滤器TEMP_DATA(具有未过滤的列表)下面有一个函数,而不是使用此过滤器重绘图表。它在第一个过滤器中有效,但在第二个过滤器中则无效,因为el.TEMP_DATA也在更改,尽管必须相同。

 perSelect(org){
    this.reports.filter(x=>x.TITLE==org).forEach(el=>{ 
      var that=this, datas=[];
      if(el.c_personel.length!=0){ var datas=el.TEMP_DATA.filter(y=>el.c_personel.map(x=>{return x.id}).join(",").includes(y.sicil)) }else{datas=el.TEMP_DATA;}  
      el.chartOptions = {
        chart: {  backgroundColor: "transparent" },
        title: { text: '' }, credits: { enabled: false }, legend: { enabled: false },
        yAxis: { max: 100, min:0, title: { text: 'Verimlilik - Performans - Kalite (PVK)'}},
        xAxis: { max: 100,  min:0,  title: {  text: 'Davranış'}},
        tooltip: { formatter: function () {return this.point.name+'<br/>' + 'Davranış: <b>'  + this.y + '</b>'+'<br/>'+  'PVK: <b>' + this.x +'</b> <br/>'+ 'Pozisyon: <b> '+this.point.position+'</b> <br/>'+'Departman:  <b> '+this.point.organization+'</b> <br/>' } },
        plotOptions: { series: {  cursor: 'pointer',   events: {  click: function (event) {  that.personelDetay( this.options.sicil)}}}},
        series: [{ data: datas, type: "scatter" }]
      }; 
    }) 
  }

这也是我的班级

export class Oxy{
    public TITLE:string;
    public highcharts:typeof Highcharts=Highcharts;
    public chartOptions:Highcharts.Options; 
    public TEMP_DATA=[];
    public PERSONELLER=[];
    public c_personel=[];
}

c_personel用下拉列表填充。装入页面时,将填充PERSONELLERTEMP_DATA。什么会导致更改TEMP_DATA

提前感谢

angular highcharts
1个回答
0
投票

在其他条件下,您正在执行此条件

else {datas = el.TEMP_DATA;}

这为数据分配了TEMP_DATA的相同引用。在循环的下一个迭代中,将数据设置为[],这会使TEMP_DATA设置为[];

您应将else条件更改为

else {数据= [... el.TEMP_DATA]}

© www.soinside.com 2019 - 2024. All rights reserved.