Je suis en train de travailler à travers la cartographie plugin exemple sur le Knockoutjs site web.
C'est l'exemple des données.
Knock-out JS Plugin de Cartographie
var data = {
name: 'Scott',
children: [
{ id : 1, name : 'Alice' }
]
}
L'exemple montre comment remplacer la cartographie pour l'un des enfants, mais comment puis-je modifier la cartographie de l'objet de base.
Si par exemple je voulais ajouter un "FavouriteChild" propriété de Scott comment m'y prendre?
Je suppose que j'ai besoin d'utiliser la fonction create sur la cartographie de base, mais je ne peux pas trouver un exemple de la syntaxe n'importe où.
var myChildModel = function(data) {
ko.mapping.fromJS(data, {}, this);
this.nameLength = ko.computed(function() {
return this.name().length;
}, this);
}
var mapping = {
'children': {
create: function(options) {
return new myChildModel(options.data);
}
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
EDIT : à Partir de la accepté de répondre ci-dessous, j'ai trouvé que cela fonctionne
<span data-bind='text: AdditionalProperty'>
Le knock-out de code
var mapping = {
create: function (options) {
//customize at the root level.
var innerModel = ko.mapping.fromJS(options.data);
innerModel.AdditionalProperty = 'Hello World';
return innerModel;
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
//use this as our model bindings
ko.applyBindings(viewModel);