javascript - 初始布局完成后如何重新链接所有链接
问题描述
我听“INITIAL LAYOUT COMPLETED”事件添加到链接模板选项避免节点出于性能原因。当我设置它时,路线不会被更新和重叠节点。
this._diagram.addDiagramListener('InitialLayoutCompleted', () => {
this._diagram.linkTemplate =
$(go.Link, // defined below
{
routing: go.Link.AvoidsNodes, // go.Link.AvoidsNodes
},
new go.Binding('points', 'points').makeTwoWay(),
$(go.Shape, { stroke: '#fff', strokeWidth: 1 })
);
const Pointers: any = this._diagram.model.toJson();
解决方案
您不想修改现有模板,也不想替换它们。后者会导致重新创建所有链接。
相反,将Link.routing 保留为不在AvoidsNodes
链接模板中。
然后在您的“InitialLayoutCompleted” DiagramEvent侦听器中,您可以执行以下操作:
this._diagram.links.each(l => l.routing = go.Link.AvoidsNodes);
更好的是,你可以只为那些需要它的链接这样做。
推荐阅读
- laravel - laravel 客户端 api 与 guzzle
- mysql - 排序规则将 utf8mb4_unicode_ci 更改为 utf8mb4_general_ci
- reactjs - 当上下文消费者中的任何状态发生变化时,React 是否会重新渲染所有组件?
- python - 如何解决“TypeError:不支持的格式字符串传递给 OSError.__format__”?
- python - 用另一个列表中的格式化文本替换列表中的文本
- python - Parser 必须是字符串或字符流,而不是 Series
- mongodb - 我如何将数据插入到 mongodb 的嵌入式集合中
- amazon-web-services - 有人可以为我揭开 AWS 服务中的 EMR/EC2/Lambda/SNS/SQ 的神秘面纱吗?
- ubuntu - --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 是什么意思?
- python - “AttributeError:‘numpy.ndarray’对象没有属性‘值’