我正在使用从画布中的fabric.Image
扩展的自定义对象,如本答案所示。当我从服务器检索 json 字符串时,尝试将其加载到画布时出现奇怪的错误:
var canvas = new fabric.Canvsd();
function loadCanvas(resp) {
// response object contains a data field
// that's essentialy a JSON string
var json = JSON.parse(resp.data);
canvas.loadFromDatalessJSON(json);
}
我在控制台上得到了一个奇怪的打印输出:Cannot call method 'setupState' of undefined (fabric.min.js: 1118)
。我尝试用canvas.loadFromJSON(json)
替换呼叫,但得到了一个模糊的SyntaxError: Unexpected token o
错误。当我在链接线程中建议的更改之前使用常规fabric.Image
时,此代码工作正常。我担心这可能是我在用附加数据扩展 favric 的图像类时缺少的东西。思潮?
经过一番搜索,我在fabricjs google组中看到了类似的线程。原来我搞砸了 3 件事:
- 我在不同的
- 位置缺少我制作的另一个自定义对象的
fromObject()
回调定义(我有几个)。 - 当我应该使用简单的
loadFromJSON()
时,我正在使用loadFromDatalessJSON()
。 - 在将 JSON 字符串传递到
loadFromJSON()
函数之前,我使用JSON.parse(json)
将 json 字符串解析为实际的 JSON,该函数需要一个 json 字符串并在内部处理解析。
德普。