如何解决Fabric Js -- iText 字段未由 JSON.stringify(canvas) 导出
我在尝试通过 JSON.stringify(canvas) 导出 IText 字段时遇到了一些问题。
在我看来,属性 'text'、'fontStyle'、'fontSize' 和 'fontFamily' 似乎没有被 JSON.stringify(canvas) 函数导出,而样式属性(下划线、上标等)正确导出。
特别是缺少的 'text' 属性会抛出 TypeError: undefined is not an object (evaluating 't.split'),如果我尝试使用 loadFromJSON 函数恢复画布。
我通过以下方式定义了 IText 对象:
var myText = new fabric.IText('',{
left: pointer.x,top: pointer.y,originX: 'center',originY: 'center',fontFamily: 'Arial',fontSize: 16,editable: true,selectable: true,hasBorders: true,hasControls: false,treeNodeName: newNode
});
像下面这样的变通办法解决了这个问题:
fabric.Object.prototype.toObject = (function(toObject) {
return function() {
return fabric.util.object.extend(toObject.call(this),{
text: this.text,fontStyle: this.fontStyle,fontSize: this.fontSize,fontFamily: this.fontFamily
});
};
})(fabric.Object.prototype.toObject);
现在我想知道这是否是正确的方法,或者这些属性是否不应该由 JSON 导出函数处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。