Update KnockoutMappingUpdateOptions to add the missing target field

Also makes the observable field optional as it's only present if target
is a writable observable.
This commit is contained in:
John Hasselkus
2016-01-31 10:37:20 -06:00
parent 984a41af67
commit 07798ba68f
2 changed files with 15 additions and 1 deletions
@@ -15,6 +15,7 @@ var createOptions = {
var updateOptions = {
data: inputData,
parent: parent,
target: inputModel,
observable: ko.observable(7)
}
@@ -49,6 +50,18 @@ mapping.fromJSON(inputJSON);
mapping.fromJSON(inputJSON, targetOptions);
mapping.fromJSON(inputJSON, inputOptions, inputModel);
mapping.fromJS(inputJSON, {
fieldNeedingCustomOptions: {
key: (data: any) => data.id,
create: (options: KnockoutMappingCreateOptions) => {
return mapping.fromJS(options.data);
},
update: (options: KnockoutMappingUpdateOptions) => {
return mapping.fromJS(options.data, options.target);
}
}
});
// toJS function
mapping.toJS(inputModel);
mapping.toJS(inputModel, mappingOptions);
+2 -1
View File
@@ -13,7 +13,8 @@ interface KnockoutMappingCreateOptions {
interface KnockoutMappingUpdateOptions {
data: any;
parent: any;
observable: KnockoutObservable<any>;
target: any;
observable?: KnockoutObservable<any>;
}
interface KnockoutMappingOptions {