Wenn die Option 'create' im Knockout-Mapping verwendet wird, würden wir das Array zu einem beobachtbaren Array machen. Aber wie machen wir die Eigenschaften jedes Objekts im beobachtbaren Array beobachtbar?Wie können Objekteigenschaften in einem beobachtbaren Knockout-Array beobachtbar gemacht werden?
In diesem Beispiel aus der Knockout-Dokumentation wird das Children-Array zu einem beobachtbaren Array gemacht, aber ich möchte alle Elemente wie id, name innerhalb jedes Objekt-Literals auch zu einem Observablen machen. Wie erreichen wir das? Setzen Sie einfach ein ko.observable
auf jedes neue Objekt im create Block?
var data = {
name: 'Graham',
children: [
{ id : 1, name : 'Lisa' }
]
};
// Your custom data model
var myChildModel = function (data) {
this.id = data.id;
this.name = data.name;
};
var mapping = {
'children': {
create: function(options) {
return new myChildModel(options.data);
}
}
};
var viewModel = ko.mapping.fromJS(data, mapping);