Al guardar un lienzo con canvas.toObject() , se omiten los atributos de objetos personalizados, pero también se omiten algunos integrados como: borderColor . Esto puede ser bastante molesto ya que guardar el lienzo usando canvas.toObject() y cargarlo nuevamente usando loadFromJson() puede cargar algo que no es lo mismo.
Afortunadamente, hay una solución para definir las propiedades que deben incluirse en canvas.toObject() que encontré en un subproceso SO separado:
fabric.Object.prototype.toObject = (function (toObject) { return function (propertiesToInclude) { propertiesToInclude = (propertiesToInclude || []).concat( ['uuid','rt_attributes'] ); return toObject.apply(this, [propertiesToInclude]); }; })(fabric.Object.prototype.toObject); Sin embargo, dado que en mi caso de uso hay muchas propiedades para incluir, me pregunto si hay una forma de incluir todos los atributos de los objetos cuando se ejecuta canvas.toObject() , o en otras palabras, ¿es posible deshabilitar esto? ¿filtrar?
Mi pregunta adicional es si alguien sabe dónde puedo encontrar esta lista de atributos que se ignoran al ejecutar canvas.toObject() .
Gracias