gojs常用API-画布操作
画布
| 获取当前画布的json | myDiagram.model.toJson(); |
| 加载json刷新画布 | myDiagram.model = go.Model.fromJson(model); |
| 删除选中节点或线 | myDiagram.commandHandler.deleteSelection(); |
|
获取选中的节点或线 myDiagram.selection |
|
|
获取画布所有节点对象 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 函数实践
1、添加节点
- var CreateNode={
- key:getNextKey(), //设置key的方法,每个节点最好是有自己独立的key
- "category":"nodeStyleOne", //节点样式选择?nodeStyleOne? => 你自己定义的样式名
- "loc":"",
- "text":"节点的text值",//也阔以是动态的值
- source:“123.svg”,//也阔以是动态的路径
- }
- myDiagram.model.addNodeData(CreateNode);
2、动态加线
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弄懂
gojs常用API-画布操作的更多相关文章
- gojs常用API (中文文档)
常用API 操作类API API 例子 应用场景 添加节点 myDiagram.model.addNodeData(node); var node = {}; node["key&q ...
- gojs常用API
操作类API: 添加节点: myDiagram.model.addNodeData(node); var node = {}; node["key"] = "节点Key& ...
- Java常用api和操作必背
1.数组排序 Java的Arrays类(java.util中)包含用来操作数组(比如排序和搜索)的各种方法. Arrays.sort(各种类型数组) 2.数组转字符串 1)打印数组时可用Arrays. ...
- Java学习笔记五 常用API对象一
常用API:字符串操作:String类,StringBuffer类,StringBulider类 字符串是最重要的数据类型之一,处理字符串也是一种语言的基本工作. 1.String类: public ...
- Javascript操作DOM常用API总结
基本概念 在讲解操作DOM的api之前,首先我们来复习一下一些基本概念,这些概念是掌握api的关键,必须理解它们. Node类型 DOM1级定义了一个Node接口,该接口由DOM中所有节点类型实现.这 ...
- node.js整理 02文件操作-常用API
NodeJS不仅能做网络编程,而且能够操作文件. 拷贝 小文件拷贝 var fs = require('fs'); function copy(src, dst) { fs.writeFileSync ...
- JS操作DOM常用API总结
<JS高程>中的DOM部分写的有些繁琐,还没勇气整理,直到看到了这篇博文 Javascript操作DOM常用API总结,顿时有了一种居高临下,一览全局的感觉.不过有时间还是得自己把书里面的 ...
- JavaScript 操作 DOM 常用 API 总结
文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...
- [总结]JS操作DOM常用API详解
文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...
随机推荐
- C# 改变控制台背景颜色
之前查找静态构造函数相关的问题无意间碰到的一个问题.改变控制台的背景颜色. static void Main(string[] args) { //设置绿色 Console.BackgroundCol ...
- Docker(Linux)学习笔记以及Redis/MariaDB的容器使用后台全自动启动
1:Docker安装,由于Docker后续pull镜像的服务器默认是在国外的,速度实在是太慢,这里使用阿里云的镜像 阿里云的Docker CE 镜像源站进行安装 docker ===========U ...
- shiro加密算法
第一节的时候我介绍过,shiro有很多加密算法,如md5和sha,而且还支持加盐,使得密码的解析变得更有难度,更好的保障了数据的安全性. 这里我们要介绍的是md5算法,因为比较常用.首先我们来看看md ...
- 「白帽挖洞技能提升」ThinkPHP5 远程代码执行漏洞-动态分析
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,在保持出色的性能和至简代码的同时,也注重易用性.但是简洁易操作也会出现漏洞,之前ThinkPHP官方修复了一个严重的远程代码执行漏 ...
- AT+CNUM获取不到手机号
原因是卡商没有写入SIM卡 解决办法 手动写入 1. 先确认SIM卡的本机号码 2. 选择电话本存储 /* AT+CPBS Select phonebook memory storage " ...
- Linux 和 Windows多线程函数对应表
Linux Pthread API Windows SDK 库对应 API 创建 pthread_create CreateThread 退出 pthread_exit ThreadExit 等待 p ...
- SpringBoot 整合Mybatis操作数据库
1.引入依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId> ...
- DV型、OV型、EV型证书的主要区别
DV型和OV型证书的区别 DV和OV型证书最大的差别是:DV型证书不包含企业名称信息:而OV型证书包含企业名称信息,以下是两者差别对比表: DV OV 包含企业名称信息 否 是 验证公司名称 ...
- super与this用法
super注意点: 1.当super调用父类的构造方法,必须在构造方法的第一个: 2.super必须只能出现在子类的方法或者构造方法中: 3.super和this不能同时调用构造方法: 4.super ...
- Transformer---GPT模型
一.GPT(Generative Pre-Training) GPT-2的模型非常巨大,它其实是Transformer的Decoder.GPT-2是Transformer的Decoder部分,输入一个 ...