Angular 表中未加载来自可观察角度6的数据

Angular 表中未加载来自可观察角度6的数据,angular,angular6,observable,Angular,Angular6,Observable,我通过从服务获取数据来加载表。我正在订阅数据,但无法将其加载到表中。我的代码片段如下: TS: HTML: 列名 {{data.columnName} 服务台 uploadCSV(a,b): Observable<any> { return this.httpClient.post(URL, {"a":a,"b":b}); } uploadCSV(a,b):可观察{ 返回这个.httpClient.post(URL,{“a”:a,“b”:b}); } 控制台中

我通过从服务获取数据来加载表。我正在订阅数据,但无法将其加载到表中。我的代码片段如下:

TS:

HTML:


列名
{{data.columnName}
服务台

  uploadCSV(a,b): Observable<any> { 
    return this.httpClient.post(URL, {"a":a,"b":b});
  }
uploadCSV(a,b):可观察{
返回这个.httpClient.post(URL,{“a”:a,“b”:b});
}

控制台中是否有错误?问题可能是您试图使用未定义值的
*ngFor

针对您的问题有两种不同的解决方案:

直接使用可观测数据

// In TS
csvColumns$: Observable<any>;

ngOnInit() {
  this.csvColumns$ = this.demoService.uploadCSV(a,b).pipe(map(d => d.response.fields);
}

// in HTML
<ng-container *ngFor="let data of csvColumns$ | async;">
  <tr>
    <td>{{data.columnName}}</td>
  </tr>
</ng-container>
试试这个:

this.demoService.uploadCSV(a,b).subscribe(Response => {
  if(Response) {
    console.log("Response is ", Response);
    this.csvColumns = Response.response.fields
  }
}

demoServiceIf
Response
未定义上传CSV(a、b)函数的post代码。我猜这是您获取数据的后端出现错误。您能否验证后端是否产生了正确的响应(例如使用Postman)?我可以在dev的网络选项卡中看到响应tools@user9040429,在您的实际应用程序中,
b
之后是否有逗号,或者您在此处错误地使用了逗号<代码>上传CSV(a,b,)。如果是,请将其移除。。
// In TS
csvColumns$: Observable<any>;

ngOnInit() {
  this.csvColumns$ = this.demoService.uploadCSV(a,b).pipe(map(d => d.response.fields);
}

// in HTML
<ng-container *ngFor="let data of csvColumns$ | async;">
  <tr>
    <td>{{data.columnName}}</td>
  </tr>
</ng-container>
// In TS
csvColumns: any[] = [];

ngOnInit() {
  this.demoService.uploadCSV(a,b).subscribe(response => {
    if(response)
      this.csvColumns = response.response.fields;
  };
}
this.demoService.uploadCSV(a,b).subscribe(Response => {
  if(Response) {
    console.log("Response is ", Response);
    this.csvColumns = Response.response.fields
  }
}