1

我想映射这个

{ items: [
    { id: 1 },
    { id: 2 },
    { id: 3 }
]};

在数组中创建某些内容时,我添加了一个函数以从集合中删除该项目。

var mapping = {
    'items': {
        key: function(data) {
            return ko.utils.unwrapObservable(data.id);
        },
        create: function(options) {
            var o = (new(function() {
                this._remove = function() {
                    options.parent.items.mappedRemove(options.data);
                };
                ko.mapping.fromJS(options.data, {}, this);
            })());
            return o;
        }
    }
};

如果我要删除使用添加的项目items.mappedCreate但不适用于映射到的项目,则此方法有效ko.mapping.fromJS

调试时我注意到 options.parent 在不同的情况下是不一样的。为什么?两种方法都应该作为父项返回 observableArray 吗?

我已经使用示例http://jsfiddle.net/fampinheiro/9CcME/设置了一个 jsfiddle 。

谢谢

4

1 回答 1

1

我在淘汰赛 ggroups 中发布了我的问题

https://groups.google.com/d/topic/knockoutjs/cqBr_CPsfqc/discussion

Roy Jacobs 解决了我的 jsfiddle 问题。

于 2012-08-06T16:52:07.283 回答