Fabric.js行可选属性未保存在画布的JSON中

时间:2014-08-20 11:47:04

标签: javascript json canvas fabricjs

我有一个画布,我使用fabric.js的线条绘制方法绘制网格线。我将这些行的选择属性定义为false,同时绘制时可以正常工作。 现在,当我对画布进行字符串化并检索JSON输出时,我注意到除了选择属性之外,其他属性都被提取了。我需要做些什么来保持JSON中的选择属性不变? 我正在使用fabric.js-1.4.10

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码,当您调用JSON()方法时,您将拥有所有其他属性:

                var obj = fabric.util.groupSVGElements(objects, options).set({
                    top: 0,
                    left: 0
                });
                obj.toJSON = (function (toJSON) {
                    return function () {
                        return fabric.util.object.extend(toJSON.call(this), {
                            customProperties: this.customProperties
                        });
                    };
                })(obj.toJSON);

实际上,正如@Abhishek在评论中所说,而不是使用fabric的toJSON()方法或用于导出svg的任何其他方法,只会导出fabric对象的默认属性。如果你想在导出列表中获得自定义添加属性,而不是像上面代码那样覆盖toJSON方法,那么在使用toJSON()方法之后,你将在导出的JSON中使用customproperty。