2013-04-02 71 views
1

我想导入多个svg文件,并在修改后将json保存到数据库。我曾尝试使用使用fabric.js在canvas中保存JSON

canvas.item(0).sourcePath = '/URL/FILE.svg'; 
    JSON.stringify(canvas.toDatalessJSON()); 

但是这对多个文件不起作用,它仅适用于第一个文件。我正在尝试指定每个文件的url,但无法理解这可以如何完成。任何解决方案,请

由于事先

回答

5

canvas.item(O) - 获取第一对象。 canvas.item(1) - 获取第二个对象,依此类推......

如果您不知道对象的总量,则可以使用canvas.forEachObject选项。

 canvas.forEachObject(function(obj){ 
     obj.sourcePath = '/URL/FILE.svg'; 
     console.log(obj.sourcePath) 
    }); 

    JSON.stringify(canvas.toDatalessJSON()); 

当你像这样加载svg时,你也可以设置obj.sourcePath。

fabric.loadSVGFromString(svg, function(objects, options) { 
     var obj = fabric.util.groupSVGElements(objects, options); 
     obj.sourcePath = '/URL/FILE.svg'; 
     canvas.add(obj); 
     canvas.renderAll(); 
    }); 

希望有所帮助!

+0

谢谢!我以前尝试过,但有一些错误,我再次以正确的方式做到了,没关系............. – rafi