knockout-mapping

Knockout Mapping plugin

knockout.mapping

Object mapping plugin for Knockout

Official documentation here.

bower install bower-knockout-mapping --save-dev
 
var data = {
    email: 'demo@example.com',
    name: 'demo',
    addresses: [
        { type: 'home', country: 'Romania', city: 'Cluj' },
        { type: 'work', country: 'Spain', city: 'Barcelona' }
    ]
};
 
// Create a view model from data 
var viewModel = ko.mapping.fromJS(data);
 
// Now use the viewModel to change some values (properties are now observable) 
viewModel.email('demo2@example.com');
viewModel.name('demo2');
viewModel.addresses()[0].city('Bucharest');
 
// Retrieve the updated data (as JS object) 
var newData = ko.mapping.toJS(viewModel);
 
// newData now looks like this 
{
  email: 'demo2@example.com',
  name: 'demo2',
  addresses: [
    { type: 'home', country: 'Romania', city: 'Bucharest' },
    { type: 'work', country: 'Spain', city: 'Barcelona' }
  ]
}
 

Run this example in JSFiddle.

Continuous Integration tests are done with Travis, and the associated Gulp task is test-ci. For development test task is used, which runs the tests against the latest version of Knockout.

MIT