Отображение JSON с массивами в виде табличных данных в Angular10

#javascript #html #css #angular

#javascript #HTML #css #angular

Вопрос:

На самом деле я пытаюсь показать ответ json от серверной части как в табличном формате.Если это один массив, то он работает нормально, если мне нужно распечатать ответ вложенного массива в той же таблице, тогда у меня мало проблем.

Надеюсь, я не использовал стандартный метод для извлечения, пожалуйста, поправьте меня решением.

Требование:

    UserId  Username  EmailID  ProfileDivisionID QueueName 
 

Ответ JSON:

 {
[
  {
    "_id": "5ff378b34b4d09aa6",
    "userRefID": "07f426ff-5db-2c7397edac61",
    "userName": "ES Purud Support",
    "divisionId": "36852a81-a1cd-7f431c05179f",
    "divisionName": "",
    "emailId": "eps@ge.com",
    "__v": 0,
    "queues": [
      {
        "_id": "5ff378b354b4d09aa1",
        "userRefID": "07f426ff-5062c7397edac61",
        "queueRefId": "c02db2a-a9cd-0f16c823646b",
        "queueName": "test",
        "__v": 0
      },
      {
        "_id": "5ff378b3145b3c54b4d09aa2",
        "userRefID": "07f426ff-506f-4e5e-afdb-2c7397edac61",
        "queueRefId": "a626d99e-f5e9-47ab-a5d0-d493003c737f",
        "queueName": "CaIMS",
        "__v": 0
      },
    ],
  },
{
    "_id": "5ff378b34d09aa7",
    "userRefID": "c5ce06dc-628-f5fc5a918295",
    "userName": "neric",
    "divisionId": "36852a81-ad7f7f431c05179f",
    "divisionName": "",
    "emailId": "intebeb45b9d295@webhook.com",
    "__v": 0,
    "queues": [
      {
        "_id": "5ff378b3154b4d09aeb",
        "userRefID": "c5ce06dc-f5fc5a918295",
        "queueRefId": "f3bf0897f-5b18fc03401b",
        "queueName": "Aseem",
        "__v": 0
      },
      
    ],
  }
]
}
 

Угловой HTML:

 <app-sr1></app-sr1>
<div class="container">
    <h1>Click to get the userdetails</h1>
    <div>
        <button (click)="Usersgetlist()" type="button" class="btn btn-success text">Get Userlist</button> 
    </div>

<div *ngIf= "this.userhide == true"  class="paddingclass">
<table class="table table-bordered">
<thead>
  <tr class="header_color">
    <th>User Id</th>
    <th>User Name</th>
    <th>Email ID</th>
    <th>Profile DivisionName</th>
    <th>Profile DivisionID</th>
    <th>queueName</th>
  </tr>
</thead>
<ng-container *ngFor="let project of userAllList">
  <tr>
  <td>{{ project.userRefID }}</td>
  <td>{{ project.userName}}</td>
  <td>{{ project.emailId }}</td>
  <td>{{ project.divisionName }}</td>
  <td>{{ project.divisionId }}</td>
</tr>
 <tr *ngFor="let project1 of project.queues">
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td>{{project1.queueName}}</td>
   </tr>
</ng-container>

</table>
</div>
</div>
 

Текущий вывод:

Здесь столбец очереди я не могу отобразить его плавно, здесь проблемы с интервалом.

введите описание изображения здесь

Комментарии:

1. Это недопустимый JSON

Ответ №1:

Фактически вы создаете еще одну строку для каждого вложенного элемента с :

 <tr *ngFor="let project1 of project.queues">
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td>{{project1.queueName}}</td>
   </tr>
 

Вы должны поместить их в td в одной строке, повторяя тег span.
Вы, наконец, можете добавлять стили в диапазоны в соответствии с вашими потребностями

 <ng-container *ngFor="let project of userAllList">
  <tr>
  <td>{{ project.userRefID }}</td>
  <td>{{ project.userName}}</td>
  <td>{{ project.emailId }}</td>
  <td>{{ project.divisionName }}</td>
  <td>{{ project.divisionId }}</td>
  <td>
    <span *ngFor="let project1 of project.queues">{{project1.queueName}}</span>
   </td>
</tr>