我正在开发一个Angular 应用程序,并且面临着在表格中显示数据的问题.在我的组件的ngOnInit中,我从服务中获取数据并将其赋给ROWS变量.调试日志(log)确认对象正在被接收并传递给HTML,如下所示:

Received object in ngOnInit: 
{
  "$id": "1",
  "RequiredReportsId": "0a6f6319-51b7-4ec1-8b5b-a84709e9f819",
  "ReportingPeriod": "2 kwartał 2024",
  // Other properties...
  "Rows": {
    "$id": "2",
    "$values": [
      // Array of row objects...
    ]
  }
  // Additional properties...
}

然而,尽管如此,数据并没有显示在我的HTML模板的表中.

此外,我在开发人员控制台中遇到一个源代码映射错误:

Source Map Error: Error: request failed with status 404
Resource URL: https://localhost:44498/@vite/client
Source Map URL: client.mjs.map

以下是我的代码片段:

TypeScript Component:

ngOnInit() {
  this.addRow();
  this.id = this.route.snapshot.paramMap.get('id')!;
  this.qrtService.get(this.id)
    .subscribe({
      next: (data: QRT) => {
        console.log('Received object in ngOnInit:', data);
        this.report = data;
        if (Array.isArray(data.Rows)) {
          this.rows = data.Rows;
        } else {
          this.rows = [data.Rows];
        }
      },
      error: error => {
        console.error('Error fetching report data', error);
      }
    });
}


Html:

<tr *ngFor="let row of rows; let i = index">
  <td>{{ row.Number }}</td>
  <td>{{ row.TestedProcessName }}</td>
  <td>{{ row.TestingDescription }}</td>
  <td>{{ row.SampleData }}</td>
  <td>{{ row.TestingActivities }}</td>
  <td>{{ row.DetectedIrregularities }}</td>
  <td>{{ row.IrregularityCategory }}</td>
  <td>{{ row.CorrectiveActions }}</td>
  <td>{{ row.CorrectiveActionDeadline }}</td>
</tr>

有没有人可以帮我找出并解决表中没有显示的数据和源图错误的问题?

其他信息:

Angular 版本:17

推荐答案

您不是在将数组传递给*ngFor,您是在传递对象,您可以修改以下行吗

ngOnInit() {
  this.addRow();
  this.id = this.route.snapshot.paramMap.get('id')!;
  this.qrtService.get(this.id)
    .subscribe({
      next: (data: QRT) => {
        console.log('Received object in ngOnInit:', data);
        this.report = data;
        if (Array.isArray(data.Rows.$values)) { // <-- changed here
          this.rows = data.Rows.$values; { // <-- changed here
        } else {
          this.rows = [data.Rows.$values]; { // <-- changed here
        }
      },
      error: error => {
        console.error('Error fetching report data', error);
      }
    });
}

Html相关问答推荐

有没有一种方法可以用css和html在桌面上并排显示列,在移动设备上显示一个下方的列?

有没有可能设置div的边框宽度相对于其父宽度和高度?'

在iOS中调整HTML邮箱内容的大小

在Hero部分中同时zoom 背景图像和形状的问题

当文本添加到元素中时,将元素拉到页面上

使用CSS Flexbox时,我的图像未对齐

如何在R rmarkdown中创建循环中的分页表?

浮动Div在CSS中未按预期工作

如何解决水平塌陷问题?

如果最后一行的卡数少于其他行,则在使用flex grow使卡在调整大小时拉伸后,flex卡的宽度将被拉伸

为什么我不能覆盖 div 的样式?

将三个div转换为显示flex

如何将内容放置在侧边栏旁边?

白色栏超出页面100%的右侧

为什么每当我调整图片大小时它都会使我的其他元素移动

视频添加到 Html 与 Github 不同步