首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态图表数据

动态图表数据
EN

Stack Overflow用户
提问于 2019-09-27 19:01:09
回答 1查看 48关注 0票数 0

我正在进行一个rest调用,并希望使用从该调用中获得的数据填充pieChartData。但是,我不能这样做。我该怎么做呢?

代码语言:javascript
复制
import { Component, OnInit} from '@angular/core';
import config from '../../config.json';
import { HttpClient, HttpHeaders } from '@angular/common/http';

@Component({
  selector: 'app-analytics',
  templateUrl: './analytics.component.html',
  styleUrls: ['./analytics.component.css']
})
export class AnalyticsComponent  {
  public clickData;
  public dataExtracted=[];
  //public pieChartData=[0,0,0,0,0,0,0,0,0,0];
  private readonly CLICK_DATA_GET = config["SettingsInfo"]['clickDataFetchEndpoint'];
  public pieChartLabels:string[] = ['SC', 'CONF', 'ISS','KB','LOC','APP','PORTAL','UD','ANA','WATCH'];
  public pieChartData=this.dataExtracted;
  public pieChartType:string = 'pie';


  constructor(private httpClient: HttpClient) { 
     this.getClickData();
    //  console.log("Array "+this.dataExtracted);

  }
  getClickData()  {
    var pieChartData=[0,0,0,0,0,0,0,0,0,0];
    this.httpClient.get(this.CLICK_DATA_GET).subscribe(
        (data) => {
          this.clickData=data;
          console.log("DATA COMING "+JSON.stringify(this.clickData));
          for(var i=0;i<this.clickData.length;i++){
            var type=this.clickData[i].u_type;
            switch(type){
              case "SC": pieChartData[0]+=1; console.log(pieChartData[0]); break;
              case "CONF": pieChartData[1]+=1; console.log(pieChartData[1]); break;
              case "ISS": pieChartData[2]+=1; console.log(pieChartData[2]); break;
              case "KB": pieChartData[3]+=1; console.log(pieChartData[3]); break;
              case "LOC": pieChartData[4]+=1; console.log(pieChartData[4]); break;
              case "APP": pieChartData[5]+=1; console.log(pieChartData[5]); break;
              case "PORTAL": pieChartData[6]+=1; console.log(pieChartData[6]); break;
              case "UD": pieChartData[7]+=1; console.log(pieChartData[7]); break;
              case "ANA": pieChartData[8]+=1; console.log(pieChartData[8]); break;
              case "WATCH": pieChartData[9]+=1; console.log(pieChartData[9]); break;
              default:
                    console.log("type:" + type + " not handled");
                    break;
            }
          }
          console.log("ARRAY BEING RETURNED "+pieChartData);
          this.dataExtracted=pieChartData;
        }

    )




    // public pieChartData:number[] 
    // public pieChartType:string = 'pie';    
}}

// getClickDataCallback(data: object) {
//   this.setSettings(data);
//   this.settingsUpdate.emit();
// }

基本上,pieChartData是空的或用零填充的。我希望用本地pieChartData填充pieChartData (在getClickData()函数中)

EN

Stack Overflow用户

回答已采纳

发布于 2019-09-27 19:13:55

我认为改变

代码语言:javascript
复制
console.log("ARRAY BEING RETURNED "+pieChartData);
this.dataExtracted = pieChartData;

代码语言:javascript
复制
console.log("ARRAY BEING RETURNED "+pieChartData);
this.pieChartData = this.dataExtracted = pieChartData;

就这么办。

当你赋值this.pieChartData = this.dataExtracted时,并不意味着当你赋值为this.dataExtracted = something else时,this.pieChartData将自动为相同的值。实际上,它将指向与之前相同的旧对象。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58133233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档