export class User {
fname: string;
lname: string;
email: string;
mobile: string;
password: string;
roles: Array<{
name: string
}>;
}
объект json
{
"email": "[email protected]",
"mobile": "9895276034",
"fname": "test",
"lname": "User",
"password": "secret",
"roles": [
{
"name": "accounts"
},
{
"name": "ADMIN"
}
Мой HTML
<ng-container matColumnDef = "roles">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Roles</th>
<td mat-cell *matCellDef = "let data ">{{data.roles[0].name}}</td>
</ng-container>
Здесь есть две роли. Первая роль (т.е. учетные записи, которые я получаю, как указано выше). Как мне перейти здесь ко второй роли (например, «АДМИНИСТРАТОР» с помощью цикла).
Пожалуйста, помогите
но как и где @Chellappan





Я полагаю, вы хотите, чтобы roles.name располагались здесь в разных рядах? Директива ngFor используется для перебора списка в angular. Ниже приведен фрагмент с использованием ngFor.
<ng-container matColumnDef = "roles">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Roles</th>
<tr *ngFor = "let role of data.roles">
<td mat-cell *matCellDef = "let data ">{{role.name}}</td>
</tr>
</ng-container>
UserTableComponent.html: 35 ОШИБКА TypeError: Невозможно прочитать "роли" свойства undefined в Object.eval [как updateDirectives] (UserTableComponent.html: 37) в Object.debugUpdateDirectives [как updateDirectives] (core.js: 11061) в checkAnd coreUpdateView (core.js: 11061) .js: 10458) в callViewAction (core.js: 10699) в execComponentViewsAction (core.js: 10641) в checkAndUpdateView (core.js: 10464) в callViewAction (core.js: 10699) в execEmbeddedViewsAction (core.js: 10662) в checkAndUpdateView (core.js: 10459) в callViewAction (core.js: 10699)
Как называется ваш объект Json? Вы не упомянули то же самое. Я предположил, что это данные.
используйте директиву ngFor