我想要映射这个
{ 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。
谢谢
答案 0 :(得分:1)
我在淘汰赛ggroups中发布了我的问题
https://groups.google.com/d/topic/knockoutjs/cqBr_CPsfqc/discussion
和Roy Jacobs解决了我的问题。