0

类似于如何在 GoJS 中动态添加 Node 数据和 Link 数据?,但我想通过添加我的自定义对象之一来处理用户添加链接。换句话说,在设置时,我有以下内容:

   customArray: MyModel[] = getMyLinkArray();
   this.diagram.model.addLinkDataCollection(customArray)

现在,当用户要添加链接时,我想添加一个从我将提供的 MyModel 对象派生的链接。它应该以与 addLinkDataCollection 中相同的方式添加 gojs 属性。

大概这意味着我应该在某处拦截一个调用,提供我的模型对象,并告诉 gojs 使用它。但我不确定要拦截什么,如何拦截,甚至是否有可能。

我可以这样做吗?

4

1 回答 1

0

https://gojs.net/latest/api/symbols/LinkingTool.html#archetypeLinkDataMyModel设置为您希望所有新链接数据具有的属性值的实例。您可以在初始化图表时设置它。

  $(go.Diagram, . . .,
    { . . .,
      "linkingTool.archetypeLinkData": new MyModel()
    })

https://gojs.net/latest/api/symbols/GraphLinksModel.html#copyLinkDataFunction设置为接受并返回MyModel. 您需要在加载的每个新模型上进行设置。

  var m = go.Model.fromJson(...);
  m.copyLinkDataFunction = function(d) { return ...; };
  myDiagram.model = m;

我确实建议将类重命名为MyLinkModel.

于 2019-11-27T21:59:25.630 回答