javascript - 如何防止图表的nodeDataArray更新后所有组件的位置发生变化?

标签 javascript gojs

我有这个图表:

var $ = go.GraphObject.make;
var diagram = $(go.Diagram, element[0], {
     initialContentAlignment: go.Spot.TopCenter,
     initialScale: 1,
     layout: $(go.LayeredDigraphLayout, { direction: 0 }),
     isReadOnly: false,
     allowLink: true,
     allowClipboard: false,
     animationManager.duration: 200,
     undoManager.isEnabled: false
});

我创建了几个简单的元素,并使用 addNodeDataCollection 方法将它们添加到图表模型中。然后我更改元素的位置,并向 nodeDataArray 添加一个元素。我希望添加新元素后旧项目的位置不会改变,但事实并非如此。所有项目的位置均已更改,并且所有元素均中心对齐。这是正确的行为吗?我没有找到如何防止在 nodeDataArray 中添加新项目后重新计算位置。

最佳答案

通常,当您添加或删除节点或链接时,会重新进行布局。在这种情况下,您的 Diagram.layout 将再次发生,将手动调整的节点位置移回布局认为应有的位置。请阅读http://gojs.net/latest/intro/layouts.html了解更多详细信息,尤其是有关“布局无效”的部分。

就您而言,我不确定您真正想要完成什么。在您的 LayeredDigraphLayout 实例上将 Layout.isOngoing 设置为 false 可能就足够了。

关于javascript - 如何防止图表的nodeDataArray更新后所有组件的位置发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40482349/

相关文章:

angular - 在 ng-bootstrap Angular 2 typescript 中的选项卡之间切换时如何保留以前的 ngbTab 内容

javascript - 找不到在 div 中创建的 Canvas 元素

javascript - GoJs 是否可以在一张图中有多个布局

javascript - React 中的 Ag-grid 纯 JS 单元渲染器

javascript - 从数组中填充 href

javascript - 复选框检查 td 内嵌套复选框的所有同级

javascript - 删除节点数据时如何在 GoJS 中动画删除?

javascript - GoJS在不知道父节点 key 的情况下删除子节点

javascript - 从 Hyperledger Fabric 事务中检索结果

javascript - 使用 jQuery 的 .css() 进行平滑的 css 更改而无需 css-transitions