持续更新中,暂时就不写案例了
。。。虽然写得不乍地,转载请附上源链接啊
PS:在本文中,node为节点对象,node.data为节点数据
画布
获取当前画布的json | myDiagram.model.toJson(); |
加载json刷新画布 | myDiagram.model = go.Model.fromJson(model); |
删除选中节点或线 | myDiagram.commandHandler.deleteSelection(); |
获取选中的节点或线 myDiagram.selection |
|
获取画布所有节点对象 myDiagram.nodes |
|
节点 node中文文档入口
获取节点实际边界(宽高) | node.naturalBounds 返回值Rect(0,0,126,31) |
添加节点 | myDiagram.model.addNodeData(nodeData); |
删除节点 | myDiagram.model.removeNodeData(nodeData); |
选中单个节点或线 | myDiagram.select(node); |
更改属性值 | myDiagram.model.setDataProperty(nodeData, 'color', "#ededed"); |
根据节点数据对象 更改节点属性 myDiagram.model.updateTargetBindings(nodeData); |
|
获取节点对象 | var node=myDiagram.findNodeForKey('key'); |
获取节点data | var nodeData=myDiagram.model.findNodeDataForKey('key'); |
批量删除节点 myDiagram.model.removeNodeDataCollection(nodes) |
|
模糊获取节点(版本1.68以上) 注意值类型,字符串和数值 myDiagram.findNodesByExample(data); 匹配方式默认为===运算符进行比较。 /abc/ 匹配包含“abc”的任何字符串 官网还有更多的匹配方式,这里就不列举了
|
|
线
添加线 | myDiagram.model.addLinkData(linkData); |
删除线 | myDiagram.model.removeLinkData(linkData); |
批量删除线 {Array|iterator} removeLinks removeLinkDataCollection(removeLinks); |
|
模糊获取线(版本1.68以上) 注意值类型,字符串和数值 myDiagram.findLinksByExample(data); 匹配 方式和模糊获取节点的规则一致 |
|
更改属性值 | myDiagram.model.setDataProperty(linkData, 'from', "-2"); |
获取节点的线 {string | null =} PID 端口ID findLinksConnected(PID) | var node=myDiagram.findNodeForKey('key'); node.findLinksConnected().each(function(link) {console.log(link.data)}); |
获取进入节点的线 {string | null =} PID 端口ID findLinksInto(PID) | var node=myDiagram.findNodeForKey('key'); node.findLinksInto().each(function(link) {console.log(link.data)}); |
获取从节点出来的线 {string | null =} PID 端口ID findLinksOutOf(PID) | var node=myDiagram.findNodeForKey('key'); node.findLinksOutOf().each(function(link) {console.log(link.data)}); |
获取A-B节点之间的线 findLinksBetween(othernode, PID, otherPID) | var nodeA=myDiagram.findNodeForKey('key'); var nodeB=myDiagram.findNodeForKey('key'); nodeA.findLinksBetween(nodeB).each(function(link) {console.log(link.data)}); |
树节点
根据甲,找甲的祖宗十八代(包括甲) node.findTreeParentChain(); |
|
根据甲,找甲的子孙十八代(包括甲) node.findTreeParts(); |
|
根据甲,找甲的父亲 node.findTreeParentNode(); | var pNode=node.findTreeParentNode(); |
根据甲,找甲的孩子们 node.findTreeChildrenNodes(); |
|
根据甲,获取甲和其孩子的关系 node.findTreeChildrenLinks(); | 未测 |