淘汰赛映射和父选项

时间:2012-08-06 11:50:19

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

我想要映射这个

{ 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。

谢谢

1 个答案:

答案 0 :(得分:1)

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

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

和Roy Jacobs解决了我的问题。