-
Notifications
You must be signed in to change notification settings - Fork 26
Description
Hi
Using the sample "custom"-Option turns out to run into an stackoverflow when recursivly calling ko.viewmodel.toModel(user)!
options:{
custom:{
"{root}.users[i]": {
map:function(user){
var mapped = ko.viewmodel.fromModel(user);
mapped().isDeleted= ko.observable(false);
return mapped;
},
unmap:function(user){
var unmapped = ko.viewmodel.toModel(user);
delete unmapped.isDeleted;
return unmapped;
}
}
}
};
Workaround:
options:{
custom:{
"{root}.users[i]": {
map:function(user){
var mapped = ko.viewmodel.fromModel(user);
mapped().isDeleted= ko.observable(false);
return mapped;
},
unmap:function(user){
delete user.___$unmapCustom; // this removes the unmapping function from the user.
var unmapped = ko.viewmodel.toModel(user); // is now save to be called
delete unmapped.isDeleted;
return unmapped;
}
}
}
};