fabric.js - добавление пользовательских свойств в форму - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь добавить некоторые настраиваемые свойства для прямоугольника.

Я попытался установить свойство toObject согласно документации fabric.js.

let rect = new fabric.Rect();

    rect.toObject = ((toObject) => {
        return () => {
            return fabric.util.object.extend(toObject.call(this), {
                name: 'some name'
            });
        };
    })(rect.toObject);

    this.canvas.add(rect);

Когда я нажимаю кнопку Сохранитьхолста

this.canvas.toJSON ();

Я получаю ОШИБКУ TypeError: this.callSuper не является функцией.

1 Ответ

0 голосов
/ 30 октября 2019

Поскольку значение this не является правильным внутри функции стрелки. Либо измените его на нормальную функцию, либо передайте rect object вместо this.

const canvas = new fabric.Canvas('c')
const rect = new fabric.Rect();

rect.toObject = (function(toObject) {
  return function(propertiesToInclude) {
    return fabric.util.object.extend(toObject.call(this, propertiesToInclude), {
      name: 'some name'
    });
  };
})(rect.toObject);

canvas.add(rect);
console.log(canvas.toJSON())
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.4.0/fabric.js"></script>
<canvas id='c'></canvas>
...