breeze:自定义枚举值

时间:2013-05-03 09:37:27

标签: enums breeze

枚举作为myEnum.SomeValue从服务器返回,但我想在屏幕上显示的是格式化的值,例如“some value”而不是SomeValue。 这可能是服务器端模型的属性的一部分,但它不会在元数据中传递。 什么是最好的地方然后用微风做这种事情?

1 个答案:

答案 0 :(得分:2)

我们已经讨论了Breeze的“可扩展”元数据的想法,但还没有实现它。请投票支持here

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

将自定义元数据添加到现有元数据对象的优势在于,只要您使用任何基本Breeze元数据,此数据就可用。

也许是这样的:(我还没有确认这段代码是正确的)

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"
};

现在,只要您获得“status”dataProperty,(例如在验证中),您也可以访问“enumDescriptions”

希望这是有道理的。