1

我有一个来自服务器的视图模型,像这样的 json

{
    Project: {
        Items: {
            ItemA: {
                Tags: [
                    ...
                ]
            },
            ItemB: ...
        }
    }
}

然后我将这个对象与 knockout.mapping 插件绑定,但我需要 ItemA 有,例如,一个额外的 Marked observable,这样我在标记中可以做类似的事情

<ul data-bind="foreach: Project.Items">
    ...            
    <input type="checkbox" data-bind="checked: Marked">

我尝试create在映射过程中使用该选项(如此处所示ko.mapping create function, extend object),但我无法弄清楚如何嵌套该create方法以扩展 Project.Items 中的对象。

我一直在尝试这样的映射

var mappings = {
    'Items': {
        create: function (options) {
            return $.map(options.data, function(obj) {
                return new Item(obj);
            });
        }
    }
}
4

1 回答 1

2

解决方案是这个绑定

var mappings = {
    'Items': {
        create: function (options) {
            return new Item(options.data);
        }
    }
};
于 2012-06-14T00:13:27.853 回答