AngularJS中Enums的最佳解决方案?

时间:2013-11-23 17:25:47

标签: angularjs enums

我无法找到优雅的Enums解决方案,特别是在使用AngularJS的Enums中搜索。

让我描述一下情况以及我是如何处理的:假设我有一个名为Event的对象 此活动有2个属性:SeverityStatus。两者都是Enums,由ID(1,2,3)和Title(严重性:“Light”,“Normal”,“Important”和Status:“Open”,“Closed”,“Pending Approval”)定义

来自服务的Event对象具有Enums的ID,当我想显示我与{{ severityIdToTitle(Event.Severity) }}绑定的对象时 SeverityIdtoTitle是我的控制器上的一个方法,它调用我的服务上的方法,该方法根据收到的id返回Enum的值 当我希望用户能够通过文本搜索对象时,会出现问题,AngularJS过滤器不知道Enum的实际“字符串”值,因此我遇到了问题。

我知道很多关于这方面的解决方法,并且有一些选择,但我想知道什么是优雅和干净的解决方案呢?我做了什么让事情变得复杂,有更好的方法吗?

谢谢你们!

1 个答案:

答案 0 :(得分:5)

有趣的问题。我会创建一个custom filter而不是使用severityIdToTitle函数。过滤器用于格式化数据以呈现给用户,因此将id转换为字符串是一个很好的用例。过滤器应该依赖于知道枚举标识符与其值之间的双向映射的服务。至于如何进行映射,这是一个普遍的JavaScript问题。关于这个here有一个很好的主题。