Skip to content

Stackoverflow using "custom"-mapping sample-code #64

@fgieseke

Description

@fgieseke

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;
}
}
}
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions