具有不同类型的视图模型的Knockout映射数组

时间:2013-03-30 11:16:51

标签: javascript knockout.js knockout-mapping-plugin

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

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

并查看模型:

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

如何使用映射插件将项目映射到可观察的匹配视图模型数组?

1 个答案:

答案 0 :(得分: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);