Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NGX图表气泡图如何重新加载显示的数据_Javascript_Angular_Typescript_Ngx Charts - Fatal编程技术网

Javascript NGX图表气泡图如何重新加载显示的数据

Javascript NGX图表气泡图如何重新加载显示的数据,javascript,angular,typescript,ngx-charts,Javascript,Angular,Typescript,Ngx Charts,我有一张ngx图表中的气泡图(用它作为散点图,但不管怎样)。HTML设置为,当用户单击页面的某个元素时,图表的内容会根据updateTitleData()函数进行更改。然而,在测试中,当我点击元素时,scatterData数组的数据会发生变化,但这不会改变实际显示的图表。所以我的问题是如何让图表在运行时动态地重新加载 我在网上读过一些关于它的文章,人们说你需要改变实际的散点数据数组,而不仅仅是它的“series”元素,我尝试在updateTitleData中创建一个数组值,保存整个数组,然后执行

我有一张ngx图表中的气泡图(用它作为散点图,但不管怎样)。HTML设置为,当用户单击页面的某个元素时,图表的内容会根据
updateTitleData()
函数进行更改。然而,在测试中,当我点击元素时,
scatterData
数组的数据会发生变化,但这不会改变实际显示的图表。所以我的问题是如何让图表在运行时动态地重新加载

我在网上读过一些关于它的文章,人们说你需要改变实际的
散点数据
数组,而不仅仅是它的
“series”
元素,我尝试在
updateTitleData
中创建一个数组值,保存整个数组,然后执行
这个操作在函数末尾,该函数再次正确设置了数据,但仍然没有导致图表更新

我还了解到,您需要在html代码中添加一个
[update$]=“update$”
,然后在typescript代码中定义图表变量时使用
update$:Subject=new Subject()
之后定义函数
updateChart(){this.update$.next(true);}
以便在需要更新图表时调用
updateChart()
。我尝试过这样做,但是由于构造函数中包含了
[update$]=“update$”
元素,因此在最初加载时它只会抛出一个错误

public scatterData = [{
     "name" : "LQArray",
     "series" : [{
         "name" : "a",
         "x" : 1,
         "y" : 2,
         "r" : 1
     }]
 }];

 private updateTitleData() {    
     if(this.regionData && this.regionData.location_quotient){
         this.scatterData["series"] = [];
         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);
         });
     }
}
这是有问题的代码。图表确实显示了开始时定义的
“a”
元素,但单击该元素后应立即删除并替换该元素。

我找到了它。 我错误地填充了“series”元素

我所拥有的:

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中删除数组元素。

我找到了答案。 我错误地填充了“series”元素

我所拥有的:

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中删除数组元素