0

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

4

1 回答 1

2

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

但与此同时,没有什么能阻止您自己“增强” 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"
};

现在,在您获得“状态”数据属性的任何地方(例如在验证中),您还可以访问您的“enumDescriptions”

希望这是有道理的。

于 2013-05-03T22:05:05.233 回答