Клонирование выбора пользовательских объектов - PullRequest
0 голосов
/ 11 сентября 2018

Я использую подклассы для добавления пользовательских свойств к стандартным объектам Fabric, например:

var IdRect: any = fabric.util.createClass(fabric.Rect, {
type: 'idRect',

initialize: function(id, dbType, options) {
    this.callSuper('initialize', options);
    this.id = id;
    this.dbType = dbType;
},

toObject: function () {
    return fabric.util.object.extend(this.callSuper('toObject'), {

    });
},

_render: function (ctx) {
    this.callSuper('_render', ctx);
}
});
IdRect.fromObject = function(options, callback) {
    var idRect =  new IdRect(null, null, options);
    callback && callback(idRect);
    return idRect;
}

Одна проблема, с которой я сталкиваюсь при попытке клонировать выборку этих пользовательских объектов, состоит в том, что fabric.util.getKlassвозвращает ноль (невозможно прочитать свойство 'fromObject' из неопределенного).Клонирование их по отдельности работает нормально.

1 Ответ

0 голосов
/ 13 сентября 2018

Оказывается, вам нужно присвоить свойство библиотеке тканей следующим образом:

 fabric.IdRect = fabric.util.createClass(...)

или для машинописи сначала назначьте матрицу переменной типа any, чтобы обойти систему типов:

 var Fabric: any = fabric; 
 Fabric.IdRect = fabric.util.createClass(...)
...