如何以将fabricCanvas序列化到文件时保留的方式向fabric js对象添加自定义参数

问题描述 投票:0回答:1

我无法向 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);

我需要做什么,添加自定义参数以便将其序列化到文件?
谢谢

fabricjs
1个回答
0
投票

这篇文章似乎解决了我的问题: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);

序列化到文件时。

© www.soinside.com 2019 - 2024. All rights reserved.