angular - Angular2 - Jak používat řetězcové výčty (string enums) s *ngIf
Jak předám enum do funkce, když používám *ngIf v Angularu?
Mám následující kód:
export enum RoleType {
User='User',
Admin='Admin'
}
funkce komponenty
public hasAccess(role: RoleType) {
//check role type and return true or false
}
komponenta html
<div id="adminDiv" *ngIf="hasAccess('Admin')">
</div>
Když to sestavuji, stále se to stěžuje. Nelze převést řetězec na výčet, existuje na to nějaký způsob?
Odpověď č. 1
Zde je mnohem čistší způsob, jak to udělat. Proveďte následující ve vašem souboru component.ts
allRoleTypes = RoleType;
a ve vašem HTML
*ngIf="role===allRoleTypes.User"
Nemusíte psát žádnou metodu.
Odpověď č. 2
Jak navrhl @Buczkowski, můžete to udělat takto:
export enum RoleType {
User = 'User',
Admin = 'Admin'
}
součást
RoleType = RoleType; // This way you can access its properties from the template.
public hasAccess(role: RoleType) {
//check role type and return true or false
}
komponenta html
<div id="adminDiv" *ngIf="hasAccess(RoleType.Admin)">
</div>
Příklad StackBlitz
