我无法向 Fabric-js 对象添加自定义参数。
我创建了一个圆形对象:
var circleShape = new fabric.Circle({
radius: 100,
fill: '#eef',
scaleY: 0.5,
originX: 'center',
originY: 'center'
});
我添加一个自定义参数:
circleShape.set("customParam", 'foo' );
我将circle对象序列化为json,并验证customParam是否是json的一部分:
var circleShapeAsJson = circleShape.toJSON(['customParam']);
console.log("circleShapeAsJson" + circleShapeAsJson);
我将圆形对象添加到 FabricCanvas 中:
fabricCanvas.add(circleShape);
我可以在chrome调试器中看到,自定义变量是
fabricCanvas._objects[1].
中fabricCanvas中子对象的一部分
但是如果我对 FabricCanvas 进行字符串化,我将不再看到自定义参数:
let fabricCanvasAsStr = JSON.stringify(fabricCanvas);
console.log('fabricCanvasAsStr', fabricCanvasAsStr);
我需要做什么,添加自定义参数以便将其序列化到文件?
谢谢
这篇文章似乎解决了我的问题:https://groups.google.com/g/fabricjs/c/dHVoTbj0MU0
IE。
打电话
let fabricCanvasAsJson = COL.model.fabricCanvas.toJSON(['customParam']);
this.annotationAsJsonStr = JSON.stringify(fabricCanvasAsJson);
而不是
this.annotationAsJsonStr = JSON.stringify(COL.model.fabricCanvas);
序列化到文件时。