提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吴园园|2019-12-13 10:15:59.793|阅读 580 次
概述:开发图表应用程序不仅仅需要编写一些使用GoJS库的JavaScript代码。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。
GoJS现已更新至最新版本2.1发布,修复了一些bug,增强用户体验,赶快下载试试吧~
调试建议
开发图表应用程序不仅仅需要编写一些使用GoJS库的JavaScript代码。
您将需要熟悉HTML DOM和CSS。
您将需要使用许多不同的浏览器在许多不同的设备上测试您的应用程序。
您将需要熟悉您的JavaScript框架(如果有)。
您将需要知道如何使用每个浏览器的开发工具,尤其是控制台窗口和调试器。
使用go-debug.js图书馆
在开发应用程序时,请确保使用调试库go-debug.js而不是调试go.js库。调试库对属性值和方法参数进行了更多的错误检查,并检测到更多异常情况。大多数警告和错误将被写入控制台窗口。始终检查它是否有消息。我们试图使他们提供信息。
使用记录的API
尝试将代码限制为仅使用记录在文档中的类,属性和方法,如 PI参考或TypeScript定义文件 go.d.ts中所列。
请不要使用一些简短的属性名称,该名称只能是一两个字母。在该库的另一个版本中,最小名称将有所不同,因此此类代码将不再起作用。基本上:永远不要在Point,Rect,Spot和LayoutVertex实例以及InputEvent.up属性上使用“ x”和“ y”以外的一两个字母属性名称。
不要修改任何GoJS类的原型。如果您修改内置类,我们将不支持您。修改GoJS类行为的方法是通过Extensions中讨论的技术 。但是,大多数GoJS类不能被子类化,并且大多数已记录的方法不能被覆盖。通常,Tool和Layout类以及CommandHandler和Link类可以被子类化。查看API文档,以了解是否可以重写方法。
使用控制台窗口
首先,您需要在“控制台”窗口或“调试器”窗口中获得对Diagram对象的引用。
一种方法是在代码中记住它。您可以在window对象上设置属性以引用您创建的图。许多示例只是通过省略var声明来做到这一点:
myDiagram = $(go.Diagram,“ myDiagramDiv”,..);
另外,在控制台中,如果您知道HTML DIV元素的名称,则可以调用静态函数Diagram.fromDiv以获取Diagram对象:
> myDiagram = go.Diagram.fromDiv(“ myDiagramDiv”);
如果未命名该DIV元素,则可能还有其他方法可以获取对DIV元素的引用。这可能取决于您使用的框架。您仍然可以在该元素上调用Diagram.fromDiv以获取相应的Diagram对象。
然后,在控制台中,您可以使用myDiagram对Diagram对象的引用。一些例子:
> myDiagram.nodes.size
返回图表中Node的数量。
> myDiagram.model.nodeDataArray [ 0 ]
返回图模型的Model.nodeDataArray中的第一个节点数据对象。
> myDiagram.layoutDiagram(true)
强制发生所有布局,重新排列节点并路由链接。
您在控制台中执行的代码也可能更加复杂。例如,您可以找到,选择并滚动到特定节点:
> myNode = myDiagram.findNodeForKey(“ Omega”); > myNode.isSelected = true > myDiagram.commandHandler.scrollToPart(myNode)
如果您不知道要在视口中看到的节点的键,也许您知道如何在模型中找到节点数据对象。该Diagram.findNodesByExample方法也可能是有用的。
检查选定的节点
> myDiagram.selection.first()
返回第一个选定的Part,它可以是Node,Link或如果未选择任何内容则为null。
如果您记得所选的节点或链接,则可以更轻松地对其进行检查。例如:
> myNode = myDiagram.selection.first() > myNode.data.key
记住第一个选定的节点并返回节点数据的键。您可能需要查看的所有属性
myNode.data
宾语。
您还可以查看Node的其他属性并调用其方法。例如:
> myNode.location
返回一个Point,其调试器可能会显示其属性。或致电:
> myNode.location.toString()
来查看该Point对象的可读文本呈现。
作为另一个示例,您可以打印出所选节点连接到的所有节点:
myNode.findNodesOutOf().each(function(n) { console.log(n.data.key); })
您可以在Collections中找到更多迭代的示例
您还可以查看节点可视树的结构。使用此递归函数:
> function walk(x, level, index) { > console.log(level + "," + index + ": " + x.toString()); > if (!(x instanceof go.Panel)) return; > for (var i = 0; i < x.elements.size; i++) walk(x.elt(i), level+1, i); > }
你也可以这样
> walk(myNode, 0, 0)
并在组织结构图示例中获得以下结果:
0,0: Node#653(Kensaku Tamaki) 1,0: Shape(Rectangle)#656 1,1: Panel(Panel.Table)#6572,0: TextBlock("Kensaku Tamaki") 2,1: Picture(//www.nwoods.com/go/Flags/japan-flag.Png)#664 2,2: TextBlock("Title: Vice Chairman"...)
因此,您可以看到节点是如何由一个由Shape组成的面板围绕一个嵌套的Table Panel组成的,该面板又由两个TextBlocks和一个Picture组成。
=====================================================
想要购买GoJS正版授权的朋友可以。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢