toJSON mapping plugin
http://stackoverflow.com/questions/11148214/tojson-view-model-overrides-not-being-reflected-after-knockout-unmapping
by rniemeyer
HTML
<script src="https://raw.github.com/SteveSanderson/knockout.mapping/master/build/output/knockout.mapping-latest.debug.js"></script>
JavaScript
function ChildViewModel(parentViewModel, data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
self.parent = parentViewModel;
}
function ParentViewModel(data) {
var self = this;
var mapping = {
'child': {
create: function (options) {
return new ChildViewModel(self, options.data);
}
},
'ignore': ['child']
};
ko.mapping.fromJS(data, mapping, self);
}
ParentViewModel.prototype.toJSON = function () {
var copy = ko.toJS(this);
delete copy.child;
return copy;
};
var data = {
name: 'Fred',
child: {
name: 'Joe'
}
};
var mapping = {
'child': {
create: function (options) {
return new ChildViewModel(self, options.data);
}
}
};
var parentViewModel = new ParentViewModel(data);
var unmappedJson = ko.mapping.toJSON(parentViewModel, { ignore: ['child'] });
alert(unmappedJson);