AngularJS中枚举的最佳解决方案?
我无法找到Enums的优雅解决方案,特别是在使用AngularJS的Enums中搜索。
让我描述一种情况以及我如何处理它:说我有一个名为Event
的对象这个事件有两个属性: Severity
和Status
。 这两个都是由ID(1,2,3)和标题(对于严重性:“轻”,“正常”,“重要”和状态:“打开”,“关闭”,“待批准”)定义的枚举。
来自Service的Event对象具有Enums的ID,并且当我想要显示与{{ severityIdToTitle(Event.Severity) }}
绑定的对象时{{ severityIdToTitle(Event.Severity) }}
SeverityIdtoTitle是我的控制器上的一个方法,它调用了我的服务上的方法它返回的基于ID接收的枚举值问题出现时,我希望用户能够通过文本搜索对象,AngularJS过滤器不知道枚举的实际“字符串”值,所以我达到我的问题。
我知道很多解决方法,并且有几个选择,但我想知道这将是一个优雅和干净的解决方案吗? 我做了什么使事情复杂化,还有更好的方法?
多谢你们!
有趣的问题。 我会创建一个自定义过滤器,而不是使用severityIdToTitle函数。 过滤器设计用于格式化数据以呈现给用户,因此将id转换为字符串对于其中的一个很好用例。 过滤器应该依赖于知道枚举标识符和它们的值之间的双向映射的服务。 至于如何做这个映射,那是一个普通的JavaScript问题。 这里有一个很好的线索。
链接地址: http://www.djcxy.com/p/91765.html上一篇: Best solution to Enums in AngularJS?
下一篇: Converting enums to array of values (Putting all JSON values in an array)