Hi Walter,
following this example I tried to draw a link between two of my entities, but with some issues.
I tried to follow this post but with no result.
The code to draw the link is the same as the above example
const drawLink = (e, button) => {
var node = button.part.adornedPart
var tool = e.diagram.toolManager.linkingTool
tool.startObject = node.port
e.diagram.currentTool = tool
tool.doActivate()
}
I’ve add to my diagram these options and the linkConnected callback
fromLinkable: true,
fromLinkableDuplicates: true,
toLinkable: true,
toLinkableDuplicates: true,
linkConnected: (node, link, port) => {
if (link.fromNode !== null) {
link.fromNode.invalidateConnectedLinks()
}
if (link.toNode !== null) {
link.toNode.invalidateConnectedLinks()
}
}
and I also wrote this piece of code to handle the event of drawing a new link
myDiagram.addDiagramListener("LinkDrawn", e => {
const subject = e.subject
const { from, to } = subject.data
const fromEntity = myDiagram.findPartForKey(from)
const toEntity = myDiagram.findPartForKey(to)
....
})
in the “LinkDrawn” listener I get the “fromEntity” and “toEntity” in order to do a post to my server and store in my db my new link.
When I draw a link between two entities, I have the issue that after the drawing phase, the arrow goes to an empty place and I get this error:
Uncaught TypeError: Cannot read property 'LinkId' of null
at selectionChanged (VM38 bundle.js:114665)
at X.<anonymous> (VM38 bundle.js:21707)
at E../node_modules/gojs/release/go.js.E.select.E.select (VM38 bundle.js:21011)
at Vj../node_modules/gojs/release/go.js.qg.standardMouseSelect (VM38 bundle.js:20658)
at Vj../node_modules/gojs/release/go.js.Vj.doMouseUp (VM38 bundle.js:20792)
at hh../node_modules/gojs/release/go.js.hh.doMouseUp (VM38 bundle.js:20851)
at E../node_modules/gojs/release/go.js.E.doMouseUp (VM38 bundle.js:20923)
I can’t find where is the problem and to be honest I didn’t understand how it works the tool for drawing the link.
Thanks