Dan*_*nny 2 enums typescript angular angular7
在Angular中enum使用时如何传递给函数*ngIf?
我有以下代码:
export enum RoleType {
User='User',
Admin='Admin'
}
Run Code Online (Sandbox Code Playgroud)
组件功能
public hasAccess(role: RoleType) {
//check role type and return true or false
}
Run Code Online (Sandbox Code Playgroud)
组件html
<div id="adminDiv" *ngIf="hasAccess('Admin')">
</div>
Run Code Online (Sandbox Code Playgroud)
当我构建它时,它一直在抱怨。它不能将字符串转换为枚举,是否有办法解决?
Dej*_*ach 11
这是一种更简洁的方法。在您的 component.ts 中执行以下操作
allRoleTypes = RoleType;
Run Code Online (Sandbox Code Playgroud)
并在您的 html 中
*ngIf="role===allRoleTypes.User"
Run Code Online (Sandbox Code Playgroud)
您不需要编写任何方法。
正如@Buczkowski建议的那样,您可以这样做:
export enum RoleType {
User = 'User',
Admin = 'Admin'
}
Run Code Online (Sandbox Code Playgroud)
RoleType = RoleType; // This way you can access its properties from the template.
public hasAccess(role: RoleType) {
//check role type and return true or false
}
Run Code Online (Sandbox Code Playgroud)
<div id="adminDiv" *ngIf="hasAccess(RoleType.Admin)">
</div>
Run Code Online (Sandbox Code Playgroud)
将其作为字符串获取,然后将其转换为 RoleType。
public hasAccess(role: string): boolean {
const roleAsEnum: RoleType = RoleType[role];
return ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1949 次 |
| 最近记录: |