我在運行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