2013-05-03 104 views
0

枚舉從服務器作爲myEnum.SomeValue回來,但我想在屏幕上顯示的是格式化值,如「some value」而不是SomeValue。 這可能是服務器端模型中屬性的一部分,但不會在元數據中傳遞。 那麼用微風做這種事情最好的地方是什麼?微風:自定義枚舉值

回答

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

現在任何地方,你得到賦予了「狀態」 dataProperty,(如在驗證),你也可以訪問你的「enumDescriptions」

希望這是有道理的。

+0

你認爲你可以提供一個關於如何在客戶端增強枚舉元數據的簡短例子嗎?即使在閱讀文檔後,我也很難找出如何去做。我知道如何在registerEntityTypeCtor中添加自定義屬性,但是我使用什麼方法將元數據添加到元數據存儲中? – Sam 2013-05-04 07:24:57

+0

我已經更新了上面的帖子。 – 2013-05-04 08:20:00

+0

太棒了!這應該足以讓我擺脫我的痛苦:)感謝您的幫助! – Sam 2013-05-04 11:12:46