我们在用 fabric.js 操作canvas画版添加各种形状/图片时,有时候会自己添加对应的自定义属性,当涉及到撤销/恢复时,要保存之前的canvas的数据以及状态,此时一般通过toJSON()、toDatalessJSON()、toDatalessObject()等来获取canvas中的内容进行保存。但是自定义属性是保存不了的。
转化成对象时保存自定义属性
canvas.toJSON([‘id‘]);
canvas 的 toDatalessJSON()
、toDatalessObject()、toJSON()、toObject() 都可以有一个参数 propertiesToIncludeopt
- propertiesToIncludeopt:要包含的属性选项,类型为 Array;
把需要保存的属性写成一个数组的形式在进行转化保存即可。
const a = canvas.toJSON([‘id1‘, ‘id2‘]); const b = canvas.toDatalessJSON([‘id1‘, ‘id2‘]); const c = canvas.toDatalessObject([‘id1‘, ‘id2‘]); const d = canvas.toObject([‘id1‘, ‘id2‘]);