У меня проблема с преобразованием.Я перечисляю некоторых пользователей в p-таблице следующим образом:
<td *ngFor="let col of columns">
<ng-container [ngSwitch]="col.field">
<ng-container *ngSwitchCase="'status'">
{{user[col.field] | titlecase}}
</ng-container>
<ng-container *ngSwitchCase="'roleNames'">
{{user[col.field]}}
</ng-container>
<ng-container *ngSwitchDefault>
{{user[col.field]}}
</ng-container>
</ng-container>
</td>
Я хочу преобразовать roleNames (они выглядят так: [ADMIN_USER]).Каждый пользователь может иметь несколько ролей ([AGENT_USER, CLINIC_USER]).
Если I console.log
typeof
внутри аргумента roleNames, он говорит, что это объект.И, к сожалению, никакой другой канал не может работать с объектами, кроме значения ключа, но я не могу сделать ngFor внутри контейнера ng, чтобы он был «невидимым».user, Clinic User и т.д ...
Удалось сделать это без канала, потому что я не хотел бы делать больше мусора, поскольку он используется только один раз.Однако, если бы его использовали больше, я бы сделал для него трубу.
Решение:
<ng-container *ngSwitchCase="'roleNames'">
{{sliceRoles(user[col.field]) | titlecase}}
</ng-container>
sliceRole(roles: object) {
const formattedRoles = [];
let finalRoles = '';
Object.values(roles).forEach((role) => {
const newRole = role.replace('_', ' ');
formattedRoles.push(newRole.concat(', '));
});
finalRoles = finalRoles.concat(...formattedRoles).slice(0, -2);
return finalRoles;
}