【发布时间】:2018-10-25 16:56:17
【问题描述】:
我目前在 html 视图中直接引用 enum int 值,但我更愿意通过枚举名称引用 - 例如,就像我在 TypeScript 代码中所做的那样
if (this.nodeType === NodeType.HostService) {
...
}
我有一个枚举定义为:
export enum NodeType {
Location,
Host,
HostAccessPoint,
HostStorage,
HostService
}
在我的 html 视图中,我在模态中加载特定组件(包括响应式表单),如下所示 - 这完全取决于 enum 值:
<div class="modal-body">
<config-edit-storage-node *ngIf="selectedNode && selectedNodeTypeEnum===3"
[node]="selectedNode" [nodeType]="selectedNodeTypeEnum"
(cancelEdit)="cancelEdit()" (saveEdit)="onSaveEdit($event)">
</config-edit-storage-node>
<config-edit-service-node *ngIf="selectedNode && selectedNodeTypeEnum===4"
[node]="selectedNode" [nodeType]="selectedNodeTypeEnum"
(cancelEdit)="cancelEdit()" (saveEdit)="onSaveEdit($event)">
</config-edit-service-node>
</div>
在我的组件中,我正在设置 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 值本身。
可以吗?
感谢和问候。
【问题讨论】:
-
NodeType[NodeType.HostService]见:stackoverflow.com/questions/18111657/…
标签: angular