如何在Angular 5视图中访问枚举值
如何在Angular 5视图中访问枚举值
我目前在我的html视图中直接引用enum
int值,但我更喜欢按枚举名称引用-例如我在TypeScript代码中所做的那样
if (this.nodeType === NodeType.HostService) { ... }
我定义了一个枚举:
export enum NodeType { Location, Host, HostAccessPoint, HostStorage, HostService }
在我的html视图中,我使用以下方式在模态框中加载特定组件(包括响应式表单),这完全取决于enum
值:
在我的组件中,我正在设置that.selectedNodeTypeEnum:
export class ConfigNetworkTreeComponent implements OnInit { selectedNode: INode; selectedNodeTypeEnum: NodeType = null; selectedNodeTypeStr: string; setNodeEvents() { let selectedObj = that.getSelectedNode(nodeID); that.selectedNode = selectedObj['selectedNode']; that.selectedNodeTypeStr = selectedObj['nodeType']; that.selectedNodeTypeEnum = NodeType[that.selectedNodeTypeStr]; } ... }
底线是我更喜欢在html中使用这种编码样式:
*ngIf="selectedNode && selectedNodeTypeEnum===NodeType.HostService"
而不是直接引用枚举int值。
可以做到吗?
谢谢和问候。
admin 更改状态以发布 2023年5月21日
由于模板的表达式上下文是组件实例,因此您应该将 NodeType
枚举分配给组件类的属性,以便在模板中可用:
export class ConfigNetworkTreeComponent { public NodeTypeEnum = NodeType; // Note: use the = operator ... }
然后,您可以在模板中使用该属性引用 NodeType
值:
*ngIf="selectedNode && selectedNodeType === NodeTypeEnum.HostService"
请参见 此 stackblitz 进行演示。