Something that I came across today that I decided to share with him:
If you clone using:
var clone = ko.mapping.fromJS(ko.mapping.toJS(itemToClone));
Then the clone will be deprived of any calculated observables. They will exist as the last value of the function, but will no longer function as calculated observables.
If your object is a complex model with calculated observable data that you would like to keep in your clone, you can do the following:
var clone = ko.mapping.fromJS(ko.mapping.toJS(itemToClone), null, new itemModel());
Where itemModel is your complex model for your item containing your calculated observable data.
source share