ko-mapping
v3.0.0
Published
Knockout Mapping plugin
Downloads
223
Maintainers
Readme
knockout.mapping
Object mapping plugin for Knockout 3.5+ with built-in types, forked from https://github.com/crissdev/knockout.mapping.
Documentation
Official documentation here.
Install
NPM
npm install ko-mapping --saveQuick 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.
Migrating from knockout.mapping or knockout-mapping?
npm uninstall knockout-mapping
# or
npm uninstall knockout.mapping
npm install ko-mappingUpdate imports
Update all your imports:
- import mapping from 'knockout-mapping';
+ import mapping from 'ko-mapping';Update types
If you used KnockoutObservableType (or any of the other types) from the old @types/knockout.mapping package, you need to update to use MappedObservable:
- const myObj: KnockoutObservableType<SomeObject>;
+ import { MappedObservable } from 'ko-mapping';
+ const myObj: MappedObservable<SomeObject>;If you happened to still use some types from @types/knockout (you shouldn't; types are included with Knockout 3.5), you need to update those as well. You might have used KnockoutSubcription or KnockoutObservable; use ko.Subscription or ko.Observable instead.
Test
Unless CI environment variable is defined, the tests use the latest version Knockout.
