Skip to content

crissdev/knockout.mapping

 
 

Repository files navigation

knockout.mapping

Build Status npm version

Object mapping plugin for Knockout

Documentation

Official documentation here.

Install

Bower

bower install bower-knockout-mapping --save

NPM

npm install knockout-mapping --save

Quick Start

var data = {
    email: '[email protected]',
    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('[email protected]');
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: '[email protected]',
  name: 'demo2',
  addresses: [
    { type: 'home', country: 'Romania', city: 'Bucharest' },
    { type: 'work', country: 'Spain', city: 'Barcelona' }
  ]
}

Run this example in JSFiddle.

Test

Unless CI environment variable is defined, the tests use the latest version Knockout.

License

MIT

Packages

No packages published

Languages

  • JavaScript 94.7%
  • CSS 2.7%
  • HTML 2.6%