我遇到Fabric.js的问题。
当我试图像这样保存面料画布时:
var data = JSON.stringify(self.canvas.toJSON(['width', 'height']))
我用高度和宽度属性很好地序列化了json。 但当我试图将其反序列化时:
self.canvas.loadFromJSON(data, function () {
self.canvas.renderAll();
});
除高度和宽度属性外,所有对象初始化。
我看到了反序列化示例:http://jsfiddle.net/fmgXt/3/
如果我添加到json height 和 width 属性,则会忽略反序列化。
但如果我将它们设置为代码 - 它也可以正常工作。我错过了什么吗?
在http://fabricjs.com/docs/fabric.StaticCanvas.html#loadFromJSON我没有找到关于includedPropertiesNames列表的loadFromJSON或类似内容的任何提及。
答案 0 :(得分:2)
我找到了一个在反序列化时获取缺少属性的解决方案:
var object = JSON.parse(json); //use default json parser
canvas.loadFromJSON(json, function(){
canvas.width = object.width;
canvas.height = object.height;
});
答案 1 :(得分:0)
这个对我没有好运。
我能够通过setWidth
和setHeight
方法使其正常工作:
var object = JSON.parse(json);
canvas.loadFromJSON(json, function() {
canvas.setWidth(object.width);
canvas.setHeight(object.height);
canvas.renderAll.bind(canvas);
});