Javascript 具有不同类型视图模型的敲除映射数组

Javascript 具有不同类型视图模型的敲除映射数组,javascript,knockout.js,knockout-mapping-plugin,Javascript,Knockout.js,Knockout Mapping Plugin,具有不同类型项目的数组: var items = [{{type:t1,text:"abc"},{type:t2,data:"123"}}] 和视图模型: function T1VM(t1) { ... } function T2VM(t2) { ... } 如何使用映射插件将项目映射到匹配视图模型的可观察数组?太简单了 var mapping = { create: function (options) { if (options.data.type == "T1"

具有不同类型项目的数组:

var items = [{{type:t1,text:"abc"},{type:t2,data:"123"}}]
和视图模型:

function T1VM(t1) { ... }
function T2VM(t2) { ... }
如何使用映射插件将项目映射到匹配视图模型的可观察数组?

太简单了

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);
“匹配视图模型”是什么意思?是否要将第一个视图模型映射到第二个视图模型?还是从第二个到第一个?或者您是否有第三个视图模型希望将其他两个映射到?类型为“t1”的对象应映射到T1VM等。。。