Я использую fabricJS версии 1.7.22.
Я хочу реализовать функциональность группировки и разгруппировки.
Когда я конвертирую свой холст в json, используя toJSON (list_of_custom_attribute). Мой пользовательский атрибут не добавлен в JSON. (пользовательский атрибут subObject, включаемый в группу, не добавляется в json).
Есть ли патч для группировки, чтобы каждый раз, когда все мои собственные атрибуты добавлялись в объекты группы.
Мой код группировки выглядит следующим образом (я позаимствовал этот код из функции fabricJS toGroup () последней версии 2.J.0 fabricJS):
var activeObject = this.canvas.getActiveGroup();
var objects = activeObject._objects.concat();
activeObject._objects = [];
var options = fabric.Object.prototype.toObject.call(activeObject);
var newGroup = new fabric.Group([]);
delete options.type;
newGroup.set(options);
objects.forEach(function (object) {
if (object) {
object.canvas.remove(object);
object.group = newGroup;
}
});
newGroup._objects = objects;
if (!activeObject.canvas) {
return newGroup;
}
else {
var canvas = activeObject.canvas;
that.extend(newGroup, that.randomId());
canvas.add(newGroup);
canvas._activeObject = newGroup;
newGroup.setCoords();
}
Я пробую сценарий, который может помочь понять проблему.
(мой объект Canvas должен содержать атрибут custom_attribute с именем 'id')
1) добавить одно изображение и клонировать это изображение. теперь конвертируем canvas в json. (JSON содержит все мои пользовательские атрибуты, такие как это => [rect [id], circle [id]]).
2) добавить одно изображение и клонировать это изображение и сгруппировать это изображение теперь конвертируем canvas в json. (JSON содержит все мои пользовательские атрибуты, такие как: => group (rect [id], circle [id]))
3) добавить одно изображение и клонировать это изображение. теперь конвертируем canvas в json (это как первый сценарий). Теперь очистите холст и снова загрузите этот json в холст. Теперь сделайте группу из этого объекта. и преобразовать canvas в json, это будет выглядеть следующим образом => group (rect [], circle [])
Основная проблема после выполнения loadfromJSON. (сценарий 3) после loadfromJSON мои объекты группы не содержат пользовательский атрибут. потому что мой холст json не содержит этот атрибут.