克隆自定义对象的选择

时间:2018-09-11 16:04:15

标签: fabricjs

我正在使用子类向标准结构对象添加自定义属性,如下所示:

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返回null(无法读取未定义的属性'fromObject')。单独克隆它们很好。

1 个答案:

答案 0 :(得分:0)

原来,您需要像这样将属性分配给结构库

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

或对于打字稿,首先将结构分配给类型为any的变量以绕过打字稿系统:

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