Enums breeze:自定义枚举值

Enums breeze:自定义枚举值,enums,breeze,Enums,Breeze,枚举从服务器返回为myEnum.SomeValue,但我想在屏幕上显示的是一个格式化的值,例如“SomeValue”,而不是SomeValue。 这可能是服务器端模型上属性的一部分,但不会在元数据中传递。 那么用breeze做这类事情的最佳场所是什么呢?我们已经讨论了breeze的“可扩展”元数据的概念,但还没有实现它。请投赞成票 但与此同时,没有什么可以阻止您“增强”自己返回的元数据。最好的方法是将您自己的属性添加到“MetadataStore”、“EntityType”或“DataPrope

枚举从服务器返回为myEnum.SomeValue,但我想在屏幕上显示的是一个格式化的值,例如“SomeValue”,而不是SomeValue。 这可能是服务器端模型上属性的一部分,但不会在元数据中传递。
那么用breeze做这类事情的最佳场所是什么呢?

我们已经讨论了breeze的“可扩展”元数据的概念,但还没有实现它。请投赞成票

但与此同时,没有什么可以阻止您“增强”自己返回的元数据。最好的方法是将您自己的属性添加到“MetadataStore”、“EntityType”或“DataProperty”类中

将自定义元数据添加到现有元数据对象的优点是,无论何时使用任何基本元数据,这些数据都是可用的

可能是这样的:(我还没有确认这个代码是正确的)

现在,无论您在哪里获得“status”dataProperty(例如在验证中),您都可以访问“enumDescriptions”


希望这是有意义的。

您认为可以提供一个简短的示例,说明如何在客户端增强枚举的元数据吗?我很难弄明白怎么做,即使在看过医生之后。我知道如何在registerEntityTypeCtor中添加自定义属性,但是我使用什么方法将元数据添加到元数据存储?太好了!这应该足以让我摆脱痛苦:)谢谢你的帮助!
var custType = myEntityManager.metadataStore.getEntityType("Customer");

// assume that the 'status' property is actually an enumerated value where you want to 
// add some custom metadata.
var statusProp = custType.getProperty("status"); 

// enumDescriptions is your custom property
statusProp.enumDescriptions = { 
  "PaidUp": "Paid Up", 
  "Delinq": "Delinquent",
  "InArr":  "In Arrears"
};