0

在我的 Stencil 中,我有许多 basic.Circle 类型的形状,到目前为止效果很好,代码类似于以下代码:

new joint.shapes.basic.Circle({
    size: { width: 5, height: 3 },
    attrs: {
        circle: { width: 50, height: 30, fill: '#602320' },
        text: { text: 'START', fill: '#ffffff', 'font-size': 10, stroke: '#000000', 'stroke-width': 0 }
    }
})

例如,这段代码创建了这个形状:

在此处输入图像描述

现在我想创建一个具有完全相同属性但在此形状的定义中设置特定类型的形状(type: "basic.Jump"

因此,新代码将如下所示:

new joint.shapes.basic.Circle({
    type: 'basic.Jump',
    size: { width: 5, height: 5 },
    attrs: {
        circle: { width: 50, height: 30, fill: '#1E90FF' },
        text: { text: 'Jump', fill: '#ffffff', 'font-size': 10, stroke: '#000000', 'stroke-width': 0 }
    }
})

当我将此形状添加到纸上时,它会渲染得很好,看起来像这样:

在此处输入图像描述

此形状可以成功保存为 JSON,但无法使用函数加载fromJSON,并且控制台错误如下:

在此处输入图像描述

我应该如何克服这个问题?

4

1 回答 1

0

我通过一种非常聪明的方式解决了我的问题:

由于我的问题是我无法加载由形状组成的图表basic.Jump,现在在通过函数加载我的图表之前,fromjson我将这些形状的类型转换为 basic.Circle 以便能够渲染图表并在成功渲染图表之后我再次将它们设置为basic.Jump

现在我可以保存/加载图表而不会出现此错误。

于 2018-05-03T09:47:17.947 回答