更改 fabric.util.groupSVGElements 生成的对象类型

Changing type of object generated by fabric.util.groupSVGElements

我正在开发一个应用程序,根据 select 在 canvas 中的对象类型,我需要显示不同的编辑选项。所以 selecting textbox 将显示字体选项,selecting image 将显示过滤器选项等。

我还将有一个用户可以加载到 canvas 中的自定义 SVG 列表。我正在考虑使用 fabric.loadSVGFromURL,像这样:

fabric.loadSVGFromURL("https://s.cdpn.io/3/kiwi.svg", function (
  objects,
  options
) {
  var obj = fabric.util.groupSVGElements(objects, options);

  console.log(obj.get('type')) // this returns `group`

  canvas.add(obj).renderAll();
});

这工作正常,但是当我检查结果对象的类型时,我得到 group。我已经在使用它在工具栏中设置特殊的组选项。我需要它是 svgvector 或其他任何东西...

有没有办法编辑我添加到 canvas 的对象的类型?或者使用不同的方式导入 SVG,以便我能够区分元素?

提交问题后不到一分钟,我就尝试了以下操作:

obj.set('type', 'svg');

有效...