0
私はこのjSON構造を持っています。私はノックアウト観察可能なオブジェクトを生成することができる午前ノックアウトマッピング・プラグインで余分なproeprtiesとJSからのノックアウトマッピング
{
"customer": {
"idcustomer": 2,
"name": "test_2",
"vat": "test_vat_2",
"obs": "obs_2",
"deleted": 0
},
"addresses": [
{
"idaddress": 9,
"street": "street_2_9",
"number": "number_2_9",
"country": "country_2_9",
"default": true,
"label": "labe_2_9",
"deleted": 0
},
{
"idaddress": 10,
"street": "1",
"number": "number_2_9",
"country": "country_2_10",
"default": false,
"label": "label_2_10",
"deleted": 0
}
],
"contacts": []
}
。しかし、マッピングパラメータを使用してオブジェクトに追加のプロパティを追加しようとすると、いくつかの問題があります。目標は、メインオブジェクトに「SelectedAddress」を追加し、各アドレスに「defaultLabel」観測値を追加することです。
現在、私がアドレス子どもたちにプロパティを追加するには、このマッピング構造を持っている:
var mapping = {
'addresses': {
create: function (options) {
return (new (function() {
this.defaultLabel= ko.computed(function() {
return (this.default() == 0) ? "" : this.label();
}, this);
ko.mapping.fromJS(options.data, {}, this);
})());
}
},
}
と、このメインJSONに "SelectedAddress" を追加する:
create: function (options) {
return new function() {
var model = ko.mapping.fromJS(options.data, {}, this);
// Direccion
model.direccionSeleccionada = ko.observable();
model.getDireccion = ko.computed({
read: function() {
if (model.direccionSeleccionada() != null) {
return model.direccionSeleccionada();
} else {
return [{
idaddress: -1,
street : '',
number: '',
country: '',
default: '',
label: '',
deleted: '',
}];
}
},
write: function(value) {
self.direccionSeleccionada(value);
},
owner: self
});
}
}
私はそれらを持つ方法を見つけることができません
アイデア?
ありがとうございました