AngularJS中Enums的最佳解决方案?

Shu*_*han 12 enums angularjs

我很难找到一个优雅的Enums解决方案,尤其是使用AngularJS在Enums中搜索.

让我描述一下情况以及我是如何处理它的:假设我有一个名为Event This的事件有这两个属性:SeverityStatus.两者都是Enums,由ID(1,2,3)和Title(严重性:"Light","Normal","Important"和Status:"Open","Closed","Pending Approval")定义

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

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

多谢你们!

jel*_*son 5

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