我正在使用子类向标准结构对象添加自定义属性,如下所示:
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')。单独克隆它们很好。
答案 0 :(得分:0)
原来,您需要像这样将属性分配给结构库
fabric.IdRect = fabric.util.createClass(...)
或对于打字稿,首先将结构分配给类型为any的变量以绕过打字稿系统:
var Fabric: any = fabric;
Fabric.IdRect = fabric.util.createClass(...)