Javascript 如何将节点连接到组而不是子节点?

Javascript 如何将节点连接到组而不是子节点?,javascript,d3.js,dagre-d3,dagre,Javascript,D3.js,Dagre D3,Dagre,我正在使用“D3”和“dagre”库创建一个具有嵌套节点的图形 我想将节点“级别1”连接到“中间级别”,然后将“中间级别”连接到“级别3” 但是当我使用“g.setEdge”时,我得到了以下错误: 无法设置未定义的属性“rank” 您的控制台是否告诉您错误来自哪一行代码?请尝试在此处添加一个console.log,以找出意外未定义的值。@anbnyc感谢您的评论。它说错误在1654行 <script type="text/javascript" src="https://d3js.org/

我正在使用“D3”和“dagre”库创建一个具有嵌套节点的图形

我想将节点“级别1”连接到“中间级别”,然后将“中间级别”连接到“级别3”

但是当我使用“g.setEdge”时,我得到了以下错误:

无法设置未定义的属性“rank”


您的控制台是否告诉您错误来自哪一行代码?请尝试在此处添加一个console.log,以找出意外未定义的值。@anbnyc感谢您的评论。它说错误在1654行
<script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script>
<script id="js">
        var g = new dagreD3.graphlib.Graph({ compound: true }).setGraph({}).setDefaultEdgeLabel(function () { return {}; });
        g.setNode('a', { label: 'Level 1' });

        g.setNode('b', { label: 'B' });
        g.setNode('g', { label: 'Level 3' });
        g.setNode('group', { label: 'Middle Level', clusterLabelPos: 'top', style: 'fill: #d3d7e8' });
        g.setNode('top_group', { clusterLabelPos: 'bottom', style: 'fill: #ffd47f' });

        g.setParent('top_group', 'group');
        g.setParent('b', 'top_group');

        g.setEdge('group', 'b');
        g.setEdge('b', 'g');

        var render = new dagreD3.render();
        var svg = d3.select("svg"),
            svgGroup = svg.append("g");
        render(d3.select("svg g"), g);
        var xCenterOffset = (svg.attr("width") - g.graph().width) / 2;
        svgGroup.attr("transform", "translate(" + xCenterOffset + ", 20)");
        svg.attr("height", g.graph().height + 40);
</script>