Comment passer enum
à une fonction lorsque j'utilise *ngIf
en angulaire?
J'ai le code suivant:
export enum RoleType {
User='User',
Admin='Admin'
}
fonction composante
public hasAccess(role: RoleType) {
//check role type and return true or false
}
composant html
<div id="adminDiv" *ngIf="hasAccess('Admin')">
</div>
Quand je construis ça, ça continue de se plaindre. Il ne peut pas convertir la chaîne en énumération, y a-t-il un moyen de contourner cela?
Obtenez-le sous forme de chaîne, puis convertissez-le en RoleType.
public hasAccess(role: string): boolean {
const roleAsEnum: RoleType = RoleType[role];
return ...
}
L'erreur apparaît parce que vous passez String quand une énumération est attendue. Comme d'autres l'ont suggéré, il existe plusieurs façons de le gérer et l'une d'elles est:
private hasRole(role: string) {
console.log(role == RoleType.admin);
console.log(role == RoleType.user);
}