私はこれをマッピングしようとしています
{ 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をセットアップしました。
ありがとうございました