This commit is contained in:
2015-04-09 07:47:57 +00:00
commit 32da2df9be
809 changed files with 119606 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
# knockout.mapping
[![Build Status](https://travis-ci.org/crissdev/knockout.mapping.svg?branch=master)](https://travis-ci.org/crissdev/knockout.mapping)
> Object mapping plugin for [Knockout](http://knockoutjs.com/)
## Documentation
Official documentation [here](http://knockoutjs.com/documentation/plugins-mapping.html).
## Install
#### Bower
```sh
bower install bower-knockout-mapping --save-dev
```
## Quick Start
```js
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](http://jsfiddle.net/wmeqx7ss/).
## Test
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.
## License
[MIT](http://www.opensource.org/licenses/mit-license.php)