Im trying to add a custom attribute to a fabric js object that i have:
var trimLine = new fabric.Rect({
width: Math.round(obj.box_dimensions.box.width,2),
height: Math.round(obj.box_dimensions.box.height,2),
strokeWidth: 1,
stroke: 'rgb(255,2,2)',
fill: '',
selectable: false
});
so thats my rectangle im trying to add and i want to pass a name or id in it to be able to identify it later when i get the canvas object and convert it to a json.
I have tried doing
var trimLine = new fabric.Rect({
width: Math.round(obj.box_dimensions.box.width,2),
height: Math.round(obj.box_dimensions.box.height,2),
strokeWidth: 1,
stroke: 'rgb(255,2,2)',
fill: '',
selectable: false,
name: trimLine
});
canvas.add(trimLine);
canvas.renderAll();
and it did not work i also tried to do
trimline.name = 'trimLine'
For those that run into the same issue the way i solved this is by doing the following:
var trimLine = new fabric.Rect({
width: Math.round(obj.box_dimensions.trimbox.width,2),
height: Math.round(obj.box_dimensions.trimbox.height,2),
strokeWidth: 1,
stroke: 'rgb(255,2,2)',
fill: '',
selectable: false
});
right below it i added this code:
trimLine.toObject = function() {
return {
name: 'trimline'
};
};
canvas.add(trimLine);
canvas.renderAll();
So now when i convert the canvas to a json the trimline object only returns the name which is all i need. Of course you can also add any other info you need as well.