FabricJS - 从JSON加载Canvas时出错

时间:2012-07-02 04:45:56

标签: json canvas load fabricjs

我在我的画布中使用从fabric.Image扩展的自定义对象,如this answer中所述。当我从服务器检索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时,此代码工作正常。我担心当我使用aditional数据扩展favric的Image类时,这可能是我所遗漏的。想法?

1 个答案:

答案 0 :(得分:2)

经过一些搜索后,我在fabricjs google群组中看到了similar thread。原来我弄乱了三件事:

  1. 我在另一个自定义对象的不同位置错过了fromObject()回调定义(我有一对)。
  2. 当我应该使用loadFromDatalessJSON()时,我正在使用loadFromJSON()
  3. 我使用JSON.parse(json)将json字符串解析为实际的JSON,然后将其传递给loadFromJSON()函数,该函数需要一个json字符串并在内部处理解析。
  4. DERP。