我有一个来自ngx图的气泡图(将其用作散点图,但无论如何)。设置HTML,以便当用户单击页面的元素时,图表的内容将基于updateTitleData()
函数进行更改。但是,在测试中,当我单击元素时,scatterData
数组的数据会更改,但这不会更改实际显示的图表。所以我的问题是如何让图表在运行时动态重新加载。
我已经在线阅读了一些有关它的信息,人们说过,您需要更改实际的scatterData
数组,而不仅仅是我通过在{ {1}}保留了整个数组,然后在函数末尾突出显示"series"
,该函数再次正确设置了数据,但仍未导致图表更新。
我还读到您需要在HTML代码中放入updateTitleData
,然后在打字稿代码中定义图表变量时,先使用this.scatterData=newData;
,然后再定义函数[update$]="update$"
,以便您只要需要更新图表就可以致电update$: Subject<any> = new Subject();
。我尝试过,但是由于updateChart(){ this.update$.next(true); }
元素包含在其构造函数中,因此在加载时它只会引发错误。
updateChart()
这是有问题的代码。该图表的确显示了在开始时定义的[update$]="update$"
元素,但是应在单击该元素后立即将其删除并替换。
答案 0 :(得分:0)
我知道了。 我没有正确填充“系列”元素。
我所拥有的:
this.jobTitles.forEach((value) => {
var newScatterData = [{
"name":value
"x":parseFloat(this.regionData.x_axis[value]),
"y":parseInt(this.regionData.y_axis[value]),
"r":1
}];
this.scatterData["series"].push(newScatterData);
});
我需要什么:
this.jobTitles.forEach((value) => {
var newScatterData = {
"name":value
"x":parseFloat(this.regionData.x_axis[value]),
"y":parseInt(this.regionData.y_axis[value]),
"r":1
};
this.scatterData[0]["series"].push(newScatterData);
});
this.scatterData=[...this.scatterData];
基本上需要[0]
前面的["series"]
,并且需要从newScatterData中删除数组元素。