【问题标题】:Knockout mapping array with different types of view models具有不同类型视图模型的 Knockout 映射数组
【发布时间】:2013-03-21 00:28:59
【问题描述】:

拥有一系列不同类型的项目:

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

并查看模型:

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

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

【问题讨论】:

  • “匹配的视图模型”是什么意思?你想要第一个视图模型映射到第二个吗?还是第二对第一?或者您是否有第三个视图模型希望其他两个映射到?
  • 类型为“t1”的对象应映射到 T1VM 等...

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


【解决方案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);

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 2017-06-25
    • 2020-08-07
    • 2012-06-24
    相关资源
    最近更新 更多