FabricJS-在添加项目/组时设置zorder

时间:2018-12-23 14:29:45

标签: fabricjs

我正在尝试将一组项目添加到画布,但是希望在添加时将该组设置在zorder堆栈的底部。这是我要执行的代码:

    //Reload the SVG now
    var site_url =  "/components/<?=$designObj->svg_filename?>";
    fabric.loadSVGFromURL(site_url, function(objects, options) {
        let componentObj = fabric.util.groupSVGElements(objects, options);
        componentObj.setControlVisible(false);
        componentObj.sendToBack();   //THIS DOESNT WORK - THROWS TYPE ERROR
        componentObj.selectable = false;
        componentObj.jdeation_comp_id = "base";
        componentObj.jdeation_base_svg = "<?=$designObj->svg_filename?>";
        canvas.add(componentObj).renderAll();
    });

调用sendToBack()时出现以下错误:

TypeError: Cannot read property 'sendToBack' of undefined

不确定我是否完全理解这里发生的事情,似乎sendToBack期望类型不是组或其他类型。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您不能.sendToBack()尚未添加到画布的对象。使用canvas.insertAt(componentObj, 0)代替canvas.add(componentObj)来指定应将对象添加到堆栈的底部。