常用API 操作類API
| API | 例子 | 應用場景 | |
| 添加節點 | |
|
通過按鈕點擊,添加新的節點到畫布 |
| 刪除選中節點 | |
|
頁面上有個按鈕點擊,可以刪除選擇的節點和線 |
| 獲取當前畫布的json | |
|
獲取當前畫布的所有元素的json,用來保存 |
| 加載json刷新畫布 | |
|
一般用來刷新和加載畫布上的元素 |
| 通過節點key獲取節點 | |
|
知道節點key ,拿到這個節點的詳細信息 |
| 更改節點屬性值 | |
|
更改節點的顏色,或者大小等 |
| 獲取獲得焦點的第一個元素,可為節點或者線 | myDiagram.selection.first() | |
|
| 獲取所有獲得焦點的節點 | myDiagram.nodes | |
|
| 遍歷整個畫布的節點信息寫法1 | |
||
| 給節點添加線 | |
||
| 選中節點 | |
||
| 特殊案例API用法 | |
其中objNode或者objLink,只能從畫布的json 對象取出, 不能直接手寫例如 var newdata={"text":"AAAA","key":-33,"loc":"0 0"}; var node = myDiagram.findNodeForData(newdat2); 除了剛好是新建的節點外,,不然是獲取不到這個對象的,因為添加節點時,gojs會自動給節點或者線添加一個屬性 ![]() |
常用事件定義API,和用法
| 應用場景 | 關鍵字 | 例子 | 例子描述 |
| 節點選中改變事件 | selectionChanged: 回調的函數方法名 //該屬性要寫在$(go.Node,)內用大括號括起來,如右側例子 | 節點選中的時候是一種顏色,取消選中是另一種顏色 |
|
| 節點雙擊事件 | |
該例子主要應用場景為,雙擊節點,得到節點的詳細信息,彈出窗口修改節點的信息, |
|
| 從Palette拖過來節觸發的事件 | |
|
|
| 當前畫布被拖動的節點 | 未測試,線保存 | |
畫布基本定義類API
| 定義gojs在全局的簡潔符號(扯淡不知道怎么描述) | var $ = go.GraphObject.make; | |
| 定義畫布的基本屬性 | |
沒寫的注釋的就是忘了, 這里綁定畫布所用的div,並保存在myDiagram中,后續的節點設置均使用這個變量,意思是在這個畫布上定義節點和操作節點 |
畫布元素屬性定義類API
| api | 例子 | |
| 定義單種節點 | myDiagram.nodeTemplate=$(go.Node,***) //***為對節點的定義 | |
| 定義多種節點(畫布上有多種節點) | myDiagram.nodeTemplateMap.add("A種節點",$(go.Node,***)) | |
| 定義線 | myDiagram.linkTemplate=$(go.Link,***); |
添加監聽事件
| 監聽節點生成事件 | |
| 監聽線生成事件 | |
| 監聽刪除事件 | |
go.Shape屬性(形狀)
| 圓角矩形 | RoundedRectangle | |
| 更多請查看API | gojs.net/latest/intr… |
通用屬性
| stroke | 邊框顏色 | null為無邊框,可填"#87CEFA","red"等 |
| margin | 邊框間距 | |
| visible | 設置是元素是否可見 | true為可見,false為不可見, |
| textAlign | 文本位置 | "center"居中 |
| editable | 文本是否可編輯 | true,false |
| font | 字體 | "bold 8pt Microsoft YaHei, Arial, sans-serif" |
| fill | 背景顏色 | 可填"#87CEFA","red"等 |
| alignment | 元素位置設置 | go.Spot.BottomLeft/左下 go.Spot.BottomRight/右下 go.Spot.TopLeft/左上 go.Spot.TopRight/又上 alignment:go.Spot.TopRight |
| isMultiline | 編輯時是否允許換行 | 默認true |
| maxLines:1, | 設置文本顯示的最大行數 | |
| minSize: | 最小大小 | new go.Size(10, 16),控制了最大大小后,文本就會自動換行了 |
| maxSize: | 最大大小 |
特殊情況解決方案
| 出現的問題 | 解決的方案 |
| 節點或者線刪除不了 | 檢查,畫布的全局設置是否禁用刪除,或者節點,和線的設置禁用刪除,關鍵字 isReadOnly,或者節點綁定的事件有問題 |
| 重復調用定義畫布報錯 | 不能重復定義被綁定的div,應該用重新加載數據的API |
原文鏈接:www.cnblogs.com

