fabric.js의 직렬화와 관련하여 이상한 문제가 있습니다.JSON Serialization은 loadFromJSON 이후 fabric.js의 사용자 정의 속성을 무시합니다.
몇 가지 사용자 지정 속성을 사용하여 사용자 지정 그룹 개체를 만들었습니다. 커스텀 속성을 처리하기 위해 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