Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FabricJs自定义属性SVG奇怪的行为_Javascript_Jquery_Json_Fabricjs - Fatal编程技术网

Javascript FabricJs自定义属性SVG奇怪的行为

Javascript FabricJs自定义属性SVG奇怪的行为,javascript,jquery,json,fabricjs,Javascript,Jquery,Json,Fabricjs,我想为画布中的每个对象添加一个自定义属性。我是这样做的: fabric.Object.prototype.toObject = (function (toObject) { return function () { return fabric.util.object.extend(toObject.call(this), { zzz: this.zzz }); }; })(fabric.Object.prototype.to

我想为画布中的每个对象添加一个自定义属性。我是这样做的:

fabric.Object.prototype.toObject = (function (toObject) {
    return function () {
        return fabric.util.object.extend(toObject.call(this), {
            zzz: this.zzz
        });
    };
})(fabric.Object.prototype.toObject);
之后,我为每个对象将zzz属性设置为100:

fabric.Object.prototype.zzz = 100;
在此之后,我在画布中放置了一个文本:

var text = new fabric.Text("time", {fill: '#999', zzz: 85, top: 50});
canvas.add(text);
然后我将SVG放入其中(SVG是通过单击按钮添加的[可能不重要]):

现在,如果我执行
console.log(selectedObject.zzz)我得到85的文本和88的SVG。一切都很好。但是如果我这样做:

myjson = JSON.stringify(canvas);
console.log(myjson);
加载这个Json,然后
console.log(selectedObject.zzz)我得到85表示文本,100表示SVG。但是SVG中没有zzz属性(因为
fabric.Object.prototype.zzz=100,所以它有100个),而是每个路径都有值为100的zzz属性;(起初,当SVG有88个路径时,路径中没有zzz属性)

json后带有SVG的图像:(无zzz属性)

json后带有SVG路径的图像:(每个路径的zzz属性)

我的问题是,如何在Json之后的SVG中具有属性zzz,并在
console.log(selectedObject.zzz)之后获取属性zzz88值?财产不知怎么丢了,但我不知道为什么


谢谢你

如果你想将画布字符串化并保留你的自定义属性,你必须告诉fabric这样做:

toJSON(['zzz'])

myjson = JSON.stringify(canvas);
console.log(myjson);