About when Undo, apply IncrementalJson do not work

look at this,
https://jsfiddle.net/batobolg/n275pg4w/6/

In the beginning the node those data properties could be not set , or doesn’t exist,
then we can resize rotate or put a text to the node, then undo it,
look, in the second diagram, same node, not undo the size angle or text,

i think it is because IncrementalJson not have those properties, gojs not delete those properties.

I haven’t had a chance to look at your example, but what you say here is correct. Model.applyIncrementalJson will not set on the existing model data all unsupplied properties to undefined or delete them. In other words, the property must be present in the argument to Model.applyIncrementalJson for the property to be set. But the value could be undefined, and then the data’s property will be set to undefined.

For reproduce resize the first diagram’s node, and press Ctrl + z undo it.

so you mean, from the beginning, all binding properties must be exist at first place, right?

Since it’s a different diagram and model that you are applying those changes to, yes, I believe that is correct.

Is there any gojs default values list? , so I can solve it programatically.

That depends entirely on the template, which often sets initial values for properties.

Ok I see, set all initial values to all shapes, a lot work to do.

If i don’t know default value just set it null, maybe OK?

You are talking about initial values for data properties, aren’t you?

So you only need to set on those data objects those properties that are currently undefined, and only for those that have TwoWay data Bindings. Think of it as normalizing your table of node data objects, making sure there are proper values for each data property.

Thank you for good suggestion, I have a node’s property setting window, almost all the properties could be change, yes, i will try normalizing , but set it one by one maybe faster finish.