2014-03-13 36 views
0

我的JSON從服務器來。它包含類似數組(Schedule),但每個Schedule元素包含另外兩個對象。淘汰賽映射:兩個物體合併成一個

每個Schedule元件是這樣的:

{"Schedule":[ 
    {"InputItem": {"Id" : "1231", "Name": "TempName"}, 
    "OutputItem": {"CalcId" : "a1231", "CalcName": "CakcTempName"} 
    }, 
    ... 
]}; 

所以,在敲除我有接受jsonData(如上所述)視圖模型:

var viewModel = function(jsonData) { 
    var self = this; 

    var customMapping = { 
     //'Schedule': { 
     // 
     // } 
    }; 
    ko.mapping.fromJS(jsonData, customMapping, self); 
}; 

結果我正在自我。包含InputItemCalculatedItem的計劃數組。 但是,我需要創建這樣一個自定義映射,將結合InputItemCalculatedItem爲一個對象,例如,ScheduleItem,以便映射後我不會有InputItemCalculatedItem,但只有一個ScheduleItem

可能嗎?

P.S.我需要這個的原因是因爲在網格中顯示Schedule數組會更容易。一半的網格是InputItems,但一半的網格是CalculatedItems。在用戶界面上我不需要分離這些項目。 我可以解決這個問題也改變我的服務器端模型,但在這裏我問的是關於部分。

回答

0

退房的documentation on the mapping plugin。 「使用'創建'定製對象構造」部分解釋瞭如何定義自己的邏輯來控制映射數據的創建。這將允許你使用一個簡單的jQuery地圖來執行你需要的對象結構的投影。