我对转换有疑问。我在这样的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])。
如果我在RoleNames案例中console.log
typeof
表示它是一个对象。
而且遗憾的是,除了键值之外,其他管道都无法使用对象,但是我无法在ng容器内将ngFor设置为“不可见”。
如何对这些roleName进行魔术处理,使其变为:管理员用户,诊所用户等...
设法不使用管道来执行此操作,因为我不想做更多的垃圾,因为它只使用了一次。但是,如果要更多地使用它,我会为此做一个管道。
解决方案:
<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;
}