Сохранение JSON на холсте с помощью fabric.js

Я пытаюсь импортировать несколько файлов svg и после модификации сохранить json в базу данных. я пытался использовать

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

но это не будет работать для нескольких файлов, оно работает только для первого файла. я пытаюсь указать каждый URL-адрес файла, но не могу понять, как это можно сделать. любое решение, пожалуйста?

заранее спасибо


person rafi    schedule 02.04.2013    source источник


Ответы (1)


canvas.item(0) — получает первый объект. canvas.item(1) - получает второй объект и так далее....

Если вы не знаете общее количество объектов, вы можете использовать опцию canvas.forEachObject.

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

     JSON.stringify(canvas.toDatalessJSON());

Вы также можете установить obj.sourcePath при загрузке svg следующим образом.

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

Надеюсь, это поможет!

person Kevin Zalewski    schedule 04.04.2013
comment
Благодарность! я пробовал это раньше, но что-то было не так, и я снова сделал это правильно, и все в порядке............. - person rafi; 06.04.2013