Fabric JS:为什么我的形状被替换为画布上的图像

时间:2017-03-01 13:00:33

标签: javascript html5 caching canvas fabricjs

我正在尝试使用结构js为学校项目创建绘图应用程序,并希望允许用户将绘图保存到我的数据库并重新打开以进行编辑等。我知道其中一些是多余的,但我有一直在尝试各种方法来清除画布,让所选择的一个被打开。

我的Chrome缓存已被禁用,我也使用了这行代码:

fabric.Object.prototype.objectCaching = false;

每次上传时,我都会从数据库中打开json到我的画布。如果我从包含5个图像(png或svg)的数据库中打开一个文件并打开它到我的画布然后决定打开一个不同的图形,只有10个形状(矩形,圆形等),画布将用这5个图像打开以前在画布上已经取代了5个形状,然后其他5个形状也将在那里......?

$.ajax({
        type: "GET",
        url: "canvasLoadByName.php",
        dataType: "json",
        data: {canvas_name: canvas_name},
        success: function (result){

                //alert(canvas_name + " has been selected!"),

                $("#Open").click(function() {
                    //canvas.getActiveGroup().forEachObject(function(o){ canvas.remove(o) }); canvas.discardActiveGroup().renderAll();
                    ctx.clearRect(0, 0, canvas.width, canvas.height);
                    canvas.clear();
                    canvas.loadFromJSON();
                    canvas.renderAll();
                    canvas.loadFromJSON(result, canvas.renderAll.bind(canvas));
                    fabric.log(result);

1 个答案:

答案 0 :(得分:0)

出于某种原因,这是按钮:

$("Open").click(function(){} 

导致了这些问题。我想要它所以它不会立即选择下拉列表,而是他们会选择“确定”#39;当他们选择他们想要的文件时。无需点击打开它工作正常...:s