我正在尝试绘制此 map
{ 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 作为父项吗?
我已经设置了一个 jsfiddle 示例 http://jsfiddle.net/fampinheiro/9CcME/ .
谢谢
最佳答案
我在 knockout ggroups 中发布了我的问题
https://groups.google.com/d/topic/knockoutjs/cqBr_CPsfqc/discussion
Roy Jacobs 解决了我的 jsfiddle 问题。
关于javascript - knockout 映射和父级选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11827672/