我有转型的问题。我在这样的 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>
我想转换角色名称(它们看起来像这样:[ADMIN_USER])。每个用户可以有多个角色([AGENT_USER, CLINIC_USER])。
如果我console.log在typeof里面的 roleNames 案例中说它是一个对象。遗憾的是,除了键值之外,没有其他管道可以处理对象,但我不能在 ng-container 中执行 ngFor 以使其“不可见”。
我怎样才能对这些角色名做一些魔术,变成类似:管理员用户、诊所用户等......
设法做到这一点 w/oa 管道,因为我不想制造更多的垃圾,因为它只使用过一次。但是,如果它被更多地使用,我会为它做一个管道。
解决方案:
<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;
}