AngularJS的最佳Enums解决方案?

Best solution to Enums in AngularJS?

我很难找到一个雅致的枚举解决方案,尤其是用AngularJS搜索枚举。

让我描述一个情况和我如何处理它:假设我有一个对象,叫做Event。此事件有两个属性:SeverityStatus。两者都是由ID(1,2,3)和标题(严重性:"轻"、"正常"、"重要"和状态:"打开"、"关闭"、"待批准")定义的枚举。

来自服务的事件对象具有枚举的ID,当我想显示对象时,我用{{ severityIdToTitle(Event.Severity) }}绑定了该对象。SeverityIDToTitle是我的控制器上的一个方法,它调用我的服务上的一个方法,该方法根据收到的ID返回枚举的值。当我希望用户能够通过文本搜索对象时,问题就出现了,AngularJS过滤器不知道枚举的实际"字符串"值,所以我找到了我的问题。

我知道很多解决方法,有一些选择,但我想知道什么是一个独立的、干净的解决方案?我所做的使事情复杂化了吗?还有更好的方法吗?

谢谢大家!


有趣的问题。我将创建一个自定义过滤器,而不是使用SeverityIDToTitle函数。过滤器设计用于格式化数据以呈现给用户,因此将ID转换为字符串是一个很好的使用案例。过滤器应该依赖于一个知道枚举标识符及其值之间双向映射的服务。至于如何进行映射,这是一个普通的javascript问题。这里有一条很好的线索。