Angular - *ngFor 嵌套 table 行

Angular - *ngFor with nested table rows

我有一个以以下结构呈现数据的对象:

 - title
 - id
 - [artists]
   - { 
       artist obj / document ,
        - [albums]
          - { album obj / document },
          - { 
            - album obj / document 
            - [photos]
               - { photo obj / document },
               - { photo obj / document },
            },
       }


下面,我已经尽我所能循环遍历这些数据。但是,我已经了解了专辑。现在我需要一个 table 行来遍历照片数组。从上面可以看出,照片是相对于相册的。需要如下内容:

*ngFor="let photo of album.photos; let photoIndex = index"

但是,据我所知,不可能将 tr 放在 tr 中。欢迎任何建议。

<ng-container *ngIf="myObj as data">
    <div>
      <table>
        <tbody>
          <tr>
            <td>0</td>
            <td>Company Info</td>
            <td></td>
          </tr>
          <tr>
            <td>1</td>
            <td>Title</td>
            <td>{{ myObj.title }}</td>
          </tr>
          <tr>
            <td>2</td>
            <td>ID</td>
            <td>{{ myObj.id }}</td>
          </tr>
        </tbody>
      </table>
  
      <table *ngFor="let artist of myObj.artists; let artistIndex = index">
        <tbody>
          <tr>
            <td>
              {{ artistIndex + 3 }}
            </td>
            <td>
              {{ artist.title }}
            </td>
            <td></td>
          </tr>
          <tr *ngFor="let album of artist.albums; let albumIndex = index">
            <td>
              {{ artistIndex + 4 + "." + albumIndex }}
            </td>
            <td>
              {{ album.title }}
            </td>
            <td></td>
          </tr>

          <!-- 
              I need another row that would be *ngFor="let photo of album.photos; let photoIndex = index"
              Unable to nest a new row inside an existing row
            -->
        </tbody>
      </table>
    </div>
  </ng-container>

您可以尝试类似的方法:

<ng-container *ngIf="myObj as data">
  <div>
    <table>
      <tbody>
        <tr>
          <td>0</td>
          <td>Company Info</td>
          <td></td>
        </tr>
        <tr>
          <td>1</td>
          <td>Title</td>
          <td>{{ myObj.title }}</td>
        </tr>
        <tr>
          <td>2</td>
          <td>ID</td>
          <td>{{ myObj.id }}</td>
        </tr>
      </tbody>
    </table>

    <table *ngFor="let artist of myObj.artists; let artistIndex = index">
      <tbody>
        <tr>
          <td>
            {{ artistIndex + 3 }}
          </td>
          <td>
            {{ artist.title }}
          </td>
          <td></td>
        </tr>
        <ng-container *ngFor="let album of artist.albums; let albumIndex = index">
          <tr>
            <td>
              {{ artistIndex + 4 + "." + albumIndex }}
            </td>
            <td>
              {{ album.title }}
            </td>
            <td></td>
          </tr>

          <tr *ngFor="let photo of album.photos; let photoIndex = index">
            <td>
              {{ artistIndex + 4 + "." + albumIndex + "." + photoIndex  }}
            </td>
            <td>
              {{ photo.title }}
            </td>
            <td></td>
          </tr>
        </ng-container>
      </tbody>
    </table>
  </div>
</ng-container>