2015-10-27 1 views
2

У меня есть холст с несколькими image objects. Каждый объект имеет некоторые пользовательские атрибуты. Мне нужно сохранить этот холст как объект json в базу данных. Я использовал следующий код для преобразования canvas в json.Пользовательские свойства объекта, очищаемые в холсте до json

canvasJson = JSON.stringify(canvas); 

После преобразования, canvasJson не может иметь какой-либо пользовательский атрибут, а также его ценности. Он имеет только атрибуты по умолчанию и его значения, такие как ширина, высота, непрозрачность и т. Д.

Как это исправить? Просьба предложить некоторые правильные пути решения этого ...

Редактировать

Ниже мой образ кода создания объекта для создания объектов изображения в холст.

var imgObj = new Image(); 
var imgSrc = $IMAGE_URL; 
imgObj.src = imgSrc; 
var image = new fabric.Image(imgObj); 
    image.set({ 
     left: 0, 
     top: 0, 
     angle: 0, 
     padding: 0, 
     cornersize: 0, 
     lockMovementX: true, 
     lockMovementY: true, 
     lockRotation: true, 
     elementId: $elementID, 
     elementname: $elementName, 
     elementstatus: $elementStatus, 
     width: componentImageWidth, 
     height: componentImageHeight 
    }); 
    canvas.add(image); 
    image.setCoords(); 
    canvas.renderAll(); 
    canvas.selection = false; 
    canvas.renderAll(); 
    setObjectAction(image, false); 

Преобразование холст в JSON с помощью JSON.stringify(canvas);elementId, elementname и elementstatus отсутствуют. но атрибуты по умолчанию получаются правильно.

Как это исправить?

+0

Пожалуйста, добавьте свой полный фрагмент кода или создать JSFiddle для разработки Больше. –

+0

Покажите нам ваш объект на холсте. –

+0

Что вы хотите сделать? –

ответ

3

Вы можете использовать ткань в canvas.toJson() или canvas.toDatalessJSON() функции, и вы можете включать пользовательские свойства, такие параметры, как это:

var json = JSON.stringify(canvas.toDatalessJSON(['elementId','elementname', 'elementstatus'])); 
+0

Это не работает для меня –

Смежные вопросы