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