首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Dagre布局中添加节点

如何在Dagre布局中添加节点
EN

Stack Overflow用户
提问于 2015-08-05 09:59:59
回答 1查看 1K关注 0票数 2

我试图通过cityscape.js将节点添加到dagre图中。问题是没有绘制节点。这是我目前拥有的代码:

代码语言:javascript
复制
cy.add({
      group: "nodes",
      data: { id:"n0",name:"n0",weight: 75 },
  });
  $.ajax(url).done(function(jsonTree){
      var newNodes=[];
      for(var i=1;i<6;i++){
        //var child = jsonTree.result[i];
        newNodes.push(
          { group: "nodes", data: { id: "n"+i, name:"n"+i}},
          { group: "edges", data: { id: "e"+i, source: "n0", target: "n"+i } }
        );

      }
      cy.add(newNodes);

有什么想法吗?我使用了loaded函数来重新加载图形,但是它不起作用。我不知道是否需要使用特定的函数来重新加载图形。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2015-08-09 13:40:08

您需要为新节点添加位置。来自cytoscape.js文档

需要注意的是,在调用cy.add()时,必须定义新添加的节点的位置。在没有有效位置的情况下,不能将节点放置在图中,否则将无法显示它们。

对于for循环,您可能需要这样的内容:

代码语言:javascript
复制
  var newNodes=[];
  for(var i=1;i<6;i++){
     newNodes.push(
          { group: "nodes", 
              data: { 
                id: "n"+i, 
                name:"n"+i
              },
           //this is the bit you missed: position
              position: {
               x:25*i,
               y:20*i
              }
           },
          { group: "edges", 
           data: { 
             id: "e"+i, 
             source: "testnode", 
             target: "n"+i 
           } 
          }
        );
      }
  cy.add(newNodes);

下面是一个JSBin,它显示一个动态添加新节点的图

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31829231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档