Я хочу объединить несколько json-данных в один vm. Я читал, что вы можете многократно отображать js в модель, и это должно быть слияние, но на моем случае это не так. Он заменяет данные.Нокаут, объединяющий несколько json-данных в один vm
function Item(ID, Name, Description) {
this.ID = ko.observable(ID);
this.Name = ko.observable(Name);
this.Description = ko.observable(Description);
}
var MasterViewModel = {
model: ko.observableArray([])
};
$.getJSON(url, function (response) {
ko.mapping.fromJS(response["TM1.Cube"], Item, MasterViewModel.model);
ko.mapping.fromJS(response["TM1.Dimension"], Item, MasterViewModel.model);
})
ko.applyBindings(MasterViewModel);
А вот мои данные JSON
{
"LogicalName": "TM1.Model",
"ID": "12345",
"Name: "Sample",
"TM1.Cube": [
{
"LogicalName": "TM1.Cube",
"ID": "111111",
"Name": Assets"
},
{
"LogicalName": "TM1.Cube",
"ID": "111112",
"Name": Finance"
}
],
"TM1.Dimension": [
{
"LogicalName": "TM1.Dimension",
"ID": "222221",
"Name": Assets"
},
{
"LogicalName": "TM1.Dimension",
"ID": "222222",
"Name": Finance"
}
]
}
и конечных результатов я ожидал, как это
{
"LogicalName": "TM1.Cube",
"ID": "111111",
"Name": Assets"
},
{
"LogicalName": "TM1.Cube",
"ID": "111112",
"Name": Finance"
},
{
"LogicalName": "TM1.Dimension",
"ID": "222221",
"Name": KPI"
},
{
"LogicalName": "TM1.Dimension",
"ID": "222222",
"Name": Default"
}
Я добавил jsFiddle http://jsfiddle.net/e1ppj3qc/1/
просмотрел вы документацию? http://knockoutjs.com/documentation/plugins-mapping.html –
Да, у меня и выше, очень похоже на документацию. var viewModel = ko.mapping.fromJS (alice, aliceMappingOptions); ko.mapping.fromJS (bob, bobMappingOptions, viewModel); Но на моем случае он не сливается, а вместо этого заменяет содержимое на bob. Я хочу объединить alice и bob в viewModel. –