2013-03-30 33 views
0

具有不同類型的項目的數組:淘汰賽映射數組與不同類型的視圖模型

var items = [{{type:t1,text:"abc"},{type:t2,data:"123"}}] 

和視圖模型:

function T1VM(t1) { ... } 
function T2VM(t2) { ... } 

如何使用映射插件將項目映射到可觀察的匹配視圖模型數組?

+0

你的意思是一個 「匹配視圖模型」?你想把第一個視圖模型映射到第二個視圖模型嗎?還是第一到第二?或者你有第三個視圖模型,你希望其他兩個映射到? – PatrickSteele

+0

類型爲「t1」的對象應映射到T1VM等... –

回答

1

太容易了!

var mapping = { 
    create: function (options) { 
     if (options.data.type == "T1") 
      return new T1VM(options.data); 
     else if (options.data.type == "T2") 
      return new T2VM(options.data); 
    } 
}; 

然後:

ko.mapping.fromJS(items, mapping);