我在运行fabric.js中的序列化时遇到了一个奇怪的问题。JSON序列化在loadFromJSON后忽略fabric.js中的自定义属性
我已经用一些自定义属性创建了一个自定义Group对象。我已经实现了toObject()方法来处理自定义属性。
var customGrpFieldOptions = {
"name":"fabric-custom-grp",
"includeCField1" : true,
"includeCField2" : false,
"includeCField3" : false,
"includeCField4" : true
};
var customGrpObject = new fabric.Group([], customGrpFieldOptions);
customGrpObject.toObject = (function(toObject) {
return function() {
return fabric.util.object.extend(toObject.call(this), {
includeCField1: this.includeCField1,
includeCField2: this.includeCField2,
includeCField3: this.includeCField3,
includeCField4: this.includeCField4
});
};
})(customGrpObject.toObject);
我序列化画布对象来保存它。序列化的JSON具有自定义属性。
当我将对象重新加载到画布时,我可以看到对象具有自定义属性。 但是,当我再次序列化画布时,属性不包含在内。
我创建了一个JSFiddle来演示这个问题。 https://jsfiddle.net/bbcstar/9x48kk7f/
这里怎么回事?我错过了什么吗?
任何帮助将不胜感激!
有趣!我不能发现任何错误,但我会一直在检查结构代码,看看我能否找到其他的东西。 – StefanHayden
看起来这是许多像我们一样面临的fabricjs问题 - 请看这篇文章:https://github.com/kangax/fabric。js/issues/272;]问题在于对象的克隆。克隆只接受初始属性,而不是添加修改的组。 – dlght