在我的应用程序中,我在过滤器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
用下拉列表填充。装入页面时,将填充PERSONELLER
和TEMP_DATA
。什么会导致更改TEMP_DATA
?
提前感谢
在其他条件下,您正在执行此条件
else {datas = el.TEMP_DATA;}
这为数据分配了TEMP_DATA的相同引用。在循环的下一个迭代中,将数据设置为[],这会使TEMP_DATA设置为[];
您应将else条件更改为
else {数据= [... el.TEMP_DATA]}