このコードは機能しません:
var mappingOption = {
key: function (data) {
return ko.utils.unwrapObservable(data.id);
}
ko.mapping.fromJS(serverItems, mappingOption, viewModel.items);
両方のアイテム(viewModel.itemsとserverItems)をUNIONしたい
このコードは機能しません:
var mappingOption = {
key: function (data) {
return ko.utils.unwrapObservable(data.id);
}
ko.mapping.fromJS(serverItems, mappingOption, viewModel.items);
両方のアイテム(viewModel.itemsとserverItems)をUNIONしたい
var ClassA = new function(data) {
ko.mapping.fromJS(data, {
key: function (item) {
return ko.utils.unwrapObservable(item.id);
},
'items': {
create: function (itemData) {
return new ClassB(itemData.data);
}
}
}, self);
}
var ClassB = new function(data) {
ko.mapping.fromJS(data, {
key: function(item) {
return ko.utils.unwrapObservable(item.id);
};
), self);
}
したがって、ClassAにはClassBのコレクションがあります。作成時に、マッピング関数を呼び出します。この関数は、クラスBの作成コンストラクターを呼び出し、関連するデータを渡すアイテムのコレクション(ClassB型)に対して作成のコールバックを行います。
次に、ClassBはコンストラクターからデータを取得し、それをそれ自体にマージします。
ClassBのキーマッピングにより、これが機能すると確信しています。しかし、それをテストする時間がありません;-)