常用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 |