У меня есть список, содержащий 1 элемент, который выглядит так
картинка массива и содержимого
Я хочу отобразить данные в таблице с заголовками «Имя автора» и «Название». Но код, который у меня есть, показывает все заголовки в одной строке вместо создания дополнительных строк для каждого заголовка и имени автора. Как я могу этого добиться?
Таблица у меня есть со следующим кодом
<table class='table table-striped' aria-labelledby = "tableLabel" *ngIf = "authorWithBooks">
<thead>
<tr>
<th>Author Name</th>
<th>Title</th>
</tr>
</thead>
<tbody>
<tr *ngFor = "let authorWithBook of authorWithBooks">
<td>{{ authorWithBook.authorName }}</td>
<td>{{ authorWithBook.bookNameList }}</td>
</tr>
</tbody>
</table>
Вам понадобится два цикла: 1 для каждого автора и 2-й для каждого названия книги. tr
s будут созданы из второй петли. В первом цикле не нужно создавать какой-либо HTML, поэтому он войдет в элемент <ng-container>
.
Этот:
<ng-container *ngFor = "let authorWithBook of authorWithBooks">
<tr *ngFor = "let bookName of authorWithBook.bookNameList">
<td>{{ authorWithBook.authorName }}</td>
<td>{{ bookName }}</td>
</tr>
</ng-container>
А вот и рабочий StackBlitz