獲取當前畫布的json | myDiagram.model.toJson(); |
加載json刷新畫布 | myDiagram.model = go.Model.fromJson(model); |
刪除選中節點或線 | myDiagram.commandHandler.deleteSelection(); |
獲取選中的節點或線javascript myDiagram.selectionhtml |
|
獲取畫布全部節點對象設計 myDiagram.nodes |
|
添加節點 | 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節點之間的線 findLinksTo(othernode, PID, otherPID) |
var nodeA=myDiagram.findNodeForKey('key'); var nodeB=myDiagram.findNodeForKey('key'); nodeA.findLinksTo(nodeB).each(function(link) {console.log(link.data)}); |
根據甲,找甲的祖宗十八代(包括甲) node.findTreeParentChain(); |
|
根據甲,找甲的子孫十八代(包括甲) node.findTreeParts(); |
|
根據甲,找甲的父親 node.findTreeParentNode(); |
var pNode=node.findTreeParentNode(); |
根據甲,找甲的孩子們 node.findTreeChildrenNodes(); |
|
根據甲,獲取甲和其孩子的關係 node.findTreeChildrenLinks(); |
未測 |
gojs操做畫布經常使用API
API | 用例 | |
---|---|---|
增 | addNodeData(節點對象); addLinkData(線對象); |
|
刪 | removeNodeData(節點對象) removeLinkData(線對象); |
|
改 | 參數: data: nodeData或linkData propname:屬性名 val:修改的值 setDataProperty(data, propname, val); |
|
查 | 根據key獲取節點data對象 findNodeDataForKey('節點key'); 根據linkData模糊匹配線集合 (gojs1.68以上) findLinksByExample(linkData) |
|
gojs 函數實踐
一、添加節點
二、動態加線
myDiagram.model.addLinkData({"from":連線起點的key, "to":連線終點key,"category":樣式名});
gojs最佳教程: http://www.devtalking.com/categories/%E5%89%8D%E7%AB%AF/
https://liuxiaofan.com/2018/03/16/3521.html
https://www.jianshu.com/p/f91fbf085574
http://www.aubreyling.com/category/javascript/gojs/
參考以上考程,能基本上把gojs弄懂